本文已参与[新人创作礼]活动,一起开启掘金创作之路
1.for循环数组去重
var removeDuplicates = function(nums) {
if(!nums.length) return 0;
let i = 0;
nums.forEach(e=>{
if(e !== nums[i]){
i++;
nums[i] = e;
}
})
return i + 1;
}
2.数组拼接求和翻转拆分
代码
let addTwoNumbers = function(l1, l2) {
l1=l1.reverse().join('')
l2=l2.reverse().join('')
console.log(l1,l2,1)
l1 = Number(l1)+Number(l2)
l1=String(l1).split('').reverse()
console.log(l1,2);
}
addTwoNumbers([0],[0])
3.检查整数及其两倍数是否存在
代码
let addTwoNumbers = function(l1) {
let flag=false
l1.forEach(item=>{
l1.forEach(e => {
if( item!==e&&(item*2===e||e*2==item)){
return flag=true
}
})
})
console.log(flag);
}
addTwoNumbers([3,1,7,11])//[3,1,7,11] [10,2,5,3] [7,1,14,11]
4.最高频率的IP
代码
highestFrequency(ipLines) {
let h={};
let maxNum=0
let maxStr=''
ipLines.forEach(i=>{
let a= i
h[a]===undefined?h[a]=1:h[a]++
if(h[a]>maxNum){
maxStr=a
maxNum=h[a]
}
})
return maxStr
}
highestFrequency(["192.168.1.1","192.118.2.1","192.168.1.1"])//192.168.1.1
highestFrequency(["211.253.56.94","137.146.172.106","211.205.113.199","227.242.103.82","137.146.172.106","30.147.114.139","170.34.209.231","145.174.193.236","133.55.158.175","95.155.235.70","92.44.234.28","180.67.197.242","137.146.172.106","27.67.218.217","237.181.177.254","25.51.213.45","105.145.158.172","80.105.131.156","184.12.220.191","137.146.172.106","152.107.96.18","105.75.61.254","183.211.147.225"])
//137.146.172.106
5.最小子数组求和
代码
export class Solution {
minSubArray(nums) {
if (nums.length === 1) {
return nums[0]
}
if (nums.length === 2) {
if (nums[0] < nums[1]) {
return nums[0]
} else {
return nums[1]
}
}
let min = Math.min(...nums)
for(let i = 0;i<nums.length;i++) {
let sum = nums[i]
for(let j=i+1;j<nums.length;j++) {
sum+=nums[j]
if(sum<min) {
min = sum
}
}
}
return min
}
}
minSubArray[0]//0
minSubArray[1,1]//1
minSubArray[1,-1,-2,1,-4]//-6