2020-03-26 leecode刷题历程

2.给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

ex
输入: [-2,1,-3,4,-1,2,1,-5,4],
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

var maxSubArray = function (nums) {
  // 初始化一个总数
  let ans = nums[0]
  // 初始化一个计算的值
  let sum = 0
  for(let num in nums) {
    // 如果sum 小于0的话 无论他怎么加 最后的结果都是总数变小 所以 如果sum > 0 的话  才可以将num 和sum进行累加 
    // 反之将sum的值进行替换 直到他大于零为止
    if (sum > 0){
      sum += num
    } else {
      sum = num
    }
    // 将ans 和 sum 进行比较 取最大值
    ans = Math.max(ans, sum)
  }
  return ans
}

3.给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
先确定边界算法 判断是否为负数 如果为负数将其转换成绝对值
通过% 模运算取出参数的最后一位 进行进位累加
x降位

  var reverse = function(x) {
  let overFlow = function (x) {
    return x >= Math.pow(2, 31) - 1 || x <= -Math.pow(2, 31) - 1 ? 0 : x
  }
  x = overFlow(x)
  let isNegative = x < 0
  if (isNegative) {
    x = -x
  }
  let a = 0
  while(x != 0) {
    a = a * 10 + x % 10
    x = parseInt(x / 10)
  }
  return isNegative ? overFlow(-a) : overFlow(a)
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 2,485评论 0 1
  • 终于讲到动态规划了,刚刚面完依图,就考了动态规划,在面试官的提示下才写出来,要是认真刷过题就好了。 Leetcod...
    冰冰爱吃冰淇淋阅读 577评论 0 0
  • 简述 极客时间算法40讲中所出现的leetcode算法题 题目 【链表】reverse-linked-list(反...
    BestbpF阅读 4,525评论 0 4
  • 给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入:...
    Y_d89b阅读 686评论 0 0
  • “ 生活不只眼前的苟且,还有诗和远方”,其实,眼前的苟且可以理解为现实,诗和远方可以理解为理想。同样的人...
    心无速阅读 1,972评论 0 0