2021-01-20---1.24 &&L 最大子序列和-贪心法和动态规划法

 

 

let arr = [-2,1,-3,4,-1,2,1,-5,4];
function maxSubArray(arr){
  let curSum = 0;
  let maxSum = arr[1];
  for(item of arr){
    if(curSum < 0){
      curSum = item;
    }else{
      curSum += item;
    }
    maxSum = maxSum > curSum ? maxSum : curSum;
  }
  return maxSum;
}

求出当前数组中的最大值即为数组子序列最大和,可以一边形成数组一边求最大值,也可以最后求

 

function maxSubArray(nums){
  let pre = 0;
  let max = nums[1]
  nums.forEach(el => {
    pre = Math.max(el, el+pre);
    max = Math.max(pre , max)
  });
  return max;
}

 

 

var findSpecialInteger = function(arr) {
  let count = 1;
  let maxCount = 1;
  let maxCountNum = arr[0];
  let len = arr.length;
  for(let i = 0; i < len; i++){
    if(arr[i] === arr[i+1]){
      count++;
    }else{
      if(count > maxCount){
        maxCount = count;
        maxCountNum = arr[i];
        count = 0;
      }
    }
    
  }
  return maxCountNum;
};

特别注意 i < length;  不能写 i < length-1;  那样会漏掉一种情况:出现次数最多的数字连续出现在尾部。i  < length,最后arr[i-1]和arr[i]比较;arr[i]为undefined,

 

 

1.20

6;考察:异步:事件循环机制(event loop),setTimeout内的function等到scrip标签内部事件执行完之后才执行。

 

1.21

如果console.log(a)就会报错,对于未定义的变量,typeof不会报错;

从右往左执行:a在立即执行函数内部声明的,b是未经声明的,默认为全局变量;b  = 3;

 

 

1.22

立即执行函数的形参和实参不能搞混淆。  // undefined    形参的foo实际上是obj对象。

 

 

1.23

false,此时因为return的存在,new是不起作用的;f()的执行结果就是f函数本身,所以是false;

     // true,此时的new起作用,new了f的一个实例

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值