获得徽章 13
- #每日一题# 面试题 17.10. 主要元素
/**
* @param {number[]} nums
* @return {number}
*/
var majorityElement = function(nums) {
let num = -1
let s = new Map()
nums.map((item)=>{
if(s.has(item)){
s.set(item,s.get(item)+1)
}else{
s.set(item,1)
}
if(s.get(item) * 2 > nums.length){
num = item
}
})
return num
};展开评论点赞 - #每日一题# 2351. 第一个出现两次的字母
/**
* @param {string} s
* @return {character}
*/
var repeatedCharacter = function(s) {
let set = new Set()
for(let i of s){
if(set.has(i)){
return i
}else{
set.add(i)
}
}
};展开评论点赞 - #每日一题# 2544. 交替数字和
/**
* @param {number} n
* @return {number}
*/
var alternateDigitSum = function(n) {
let newarr = [...(n+'')]
let sum = 0
newarr.forEach((item,index)=>{
if(index %2==0){
sum += item*1
}else{
sum -= item*1
}
})
return sum
};展开评论点赞 - #每日一题# 剑指 Offer 40. 最小的k个数
/**
* @param {number[]} arr
* @param {number} k
* @return {number[]}
*/
var getLeastNumbers = function(arr, k) {
arr.sort((a,b)=>a-b)
return arr.splice(0,k)
};展开评论点赞 - #每日一题# 1684. 统计一致字符串的数目
/**
* @param {string} allowed
* @param {string[]} words
* @return {number}
*/
var countConsistentStrings = function(allowed, words) {
let num = 0
let arr = new Array(26).fill(0)
for(let i of allowed){
arr[i.charCodeAt() - 'a'.charCodeAt()]++
}
words.forEach((item)=>{
for(let i = 0;i<item.length;i++){
let index = item[i].charCodeAt() - 'a'.charCodeAt()
if( arr[index] == 0 ){
num++
break
}
}
})
return words.length - num
};展开评论点赞 - #每日一题# 1351. 统计有序矩阵中的负数
/**
* @param {number[][]} grid
* @return {number}
*/
var countNegatives = function(grid) {
let newarr = grid.flat(2)
let sum = 0
newarr.forEach((item)=>{
if(item < 0){
sum++
}
})
return sum
};展开评论点赞 - #每日一题# 数组中重复的数字
/**
* @param {string} s
* @param {number} n
* @return {string}
*/
var reverseLeftWords = function(s, n) {
let newarr = []
s = [...s]//转为数组
newarr = s.splice(0,n)//切割要左旋的部分 splice改变原数组
// console.log(newarr)
s.push(...newarr)//将左旋的部分拼到原数组s中
return s.join('')//将改变后的原数组转为字符串
};展开评论点赞 - #每日一题# 389. 找不同
/**
* @param {string} s
* @param {string} t
* @return {character}
*/
var findTheDifference = function(s, t) {
let arr = new Array(26).fill(0)
let x = 0
for(let i of t){
arr[i.charCodeAt() - 'a'.charCodeAt()]++
}
for(let i of s){
arr[i.charCodeAt() - 'a'.charCodeAt()]--
}
arr.map((item,index)=>{
if(item > 0){
x = index
}
})
console.log(String.fromCharCode(x + 'a'.charCodeAt()))
return String.fromCharCode(x + 'a'.charCodeAt())
};展开评论点赞