Leetcode-1822 数组元素积的符号
已知函数 signFunc(x) 将会根据 x 的正负返回特定值:
如果 x 是正数,返回 1 。
如果 x 是负数,返回 -1 。
如果 x 是等于 0 ,返回 0 。
给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。
返回 signFunc(product) 。
解题思路可能比较奇葩:
var arraySign = function(nums) {
if(nums.indexOf(0) > -1){
return 0
}else {
let arr = nums.join().split('-');
if(arr.length && arr.length % 2 >0){
return 1
}
return -1
}
};
接着想到,还是别骚操作,简单来个for循环就好,结果时间和内存都还是比较高
var arraySign = function(nums) {
let count = 0;
for(let i =0; i < nums.length;i++){
if(nums[i] === 0) return 0;
if(nums[i] < 0){
count ++
}
}
return count % 2 >0 ?-1:1
};
Leetcode-1480 一维数组动态和
var runningSum = function(nums) {
if(nums.length <=1) return nums;
let arr = [nums[0]];
nums.reduce((pre,curr)=>{
arr.push(pre+curr)
return pre+curr
})
return arr
};
Leetcode-剑指offer 58.左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。
var reverseLeftWords = function(s, n) {
let str = s.slice(0,n);
let str2 = s.slice(n,)
return str2.concat(str)
}
Leetcode-771 宝石和石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。
var numJewelsInStones = function(jewels, stones) {
let count = 0;
for(let i of stones){
if(jewels.indexOf(i)> -1){
count ++
}
}
return count
};
Leetcode-1672 最富有客户的资产总量
给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。
客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。
var maximumWealth = function(accounts) {
let max = 0
for(let i of accounts){
max = Math.max(max, i.reduce((pre,curr)=>pre+curr))
}
return max
};