给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function (s) {
let arr = []
let str = []
for (let i = 0; i < s.length; i++) {
if (str.includes(s[i])) {
arr.push(str.length)
str = []
} else {
str.push(s[i])
}
}
let len=Math.max.apply(null, arr)
return len
}
* @param {number[]} nums1
* @param {number} m
* @param {number[]} nums2
* @param {number} n
* @return {void} Do not return anything, modify nums1 in-place instead.
*/
var merge = function (nums1, m, nums2, n) {
for (let i = 0; i < n; i++) {
nums1[m + i] = nums2[i]
}
nums1.sort((a, b) =>(a - b)) // 按照升序排序
}
* @param {number[]} nums
* @param {number} val
* @return {number}
*/
var removeElement = function (nums, val) {
let i = 0
while (i < nums.length) {
if (nums[i] === val) {
nums.splice(i, 1)
}else{
i++
}
}
return nums.length
}
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function (nums) {
// for (let i = 0; i < nums.length; i++) {
// if (i > 0 && nums[i] === nums[i - 1]) {
// nums.splice(i, 1)
// i--
// }
// }
let i = 0
while (i < nums.length) {
if (i > 0 && nums[i] === nums[i - 1]) {
nums.splice(i, 1)
} else {
i++
}
}
return nums.length
}
* @param {number[]} nums
* @return {number}
*/
var removeDuplicates = function (nums) {
let i = 0
while (i < nums.length) {
if (nums[i] === nums[i - 1] && nums[i - 1] === nums[i - 2]) {
nums.splice(i, 1)
} else {
i++
}
}
return nums.length
}
* @param {number[]} nums
* @return {number}
*/
var majorityElement = function (nums) {
if (nums.length === 1) {
return nums[0]
} else {
let obj = {}
let keysArr = []
let valueArr = []
let maxNumIndex = 0
nums.forEach((element) => {
if (obj[element]) {
obj[element]++
} else {
obj[element] = 1
}
})
keysArr = Object.keys(obj)
valueArr = Object.values(obj)
maxNumIndex = valueArr.indexOf(Math.max.apply(null, valueArr))
return keysArr[maxNumIndex]
}
}
* @param {number[]} nums
* @param {number} k
* @return {void} Do not return anything, modify nums in-place instead.
*/
var rotate = function (nums, k) {
if (nums.length === 1) return
let len = 0
k > nums.length ? (len = k % nums.length) : (len = k)
let spliArr = nums.splice(-len).reverse()
for (let index = 0; index < spliArr.length; index++) {
nums.unshift(spliArr[index])
}
}
* @param {number[]} prices
* @return {number}
*/
var maxProfit = function (prices) {
let maxPrice = 0
let min = 9999999
let len = 0
for (let i = 1; i < prices.length; i++) {
min = min < prices[i - 1] ? min : prices[i - 1]
if (prices[i] > min) {
len = prices[i] - min
maxPrice = maxPrice > len ? maxPrice : len
}
}
return maxPrice
}
* @param {number[]} nums
* @return {boolean}
*/
var canJump = function (nums) {
let n = nums.length
let rm = 0
for (let i = 0; i < n; i++) {
if (i <= rm) {
rm = Math.max(rm, i + nums[i])
if (rm >= n - 1) {
return true
}
}
}
return false
}
* @param {number[]} nums
* @return {boolean}
*/
var jump = function (nums) {
let cur =0
let next =0
let count =0
for (let i = 0; i < nums.length-1; i++) {
next=Math.max(nums[i]+i,next)
if(i===cur){
cur=next
count++
}
}
return count
}
未完待续。。。。。