一些简单leetcode题目

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
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值