首页 > 编程语言 > 代码随想录算法训练营第一天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结

代码随想录算法训练营第一天 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结

时间:2023-10-27 11:13:27浏览次数:40  
标签:977 nums sum 随想录 length let result 数组

今日学习的文章链接和视频链接

977.有序数组的平方
菜鸡刚开始只会暴力,记录一下双指针:

var sortedSquares = function(nums) {
    let result = []
    let k = nums.length-1
    let j = nums.length-1;
    let i = 0;
    while(i<=j){
        if(nums[i]*nums[i]>nums[j]*nums[j]){
            result[k--] = nums[i]*nums[i]
            i++
        }else{
            result[k--] = nums[j]*nums[j]
            j--
        }
    }
    return result
};

209.长度最小的子数组
滑动窗口的机制:

var minSubArrayLen = function(target, nums) {
    let result = nums.length+1;
    let i = 0 ;
    let j = 0 ;
    let sum = 0 
    for( ; j<nums.length ; j++){
        sum += nums[j];
        while(sum>=target){
            result = result < j-i+1 ? result : j-i+1;
            // console.log(re)
            sum -= nums[i++] 
            // console.log(sum)
        }
    }
    if(nums.length+1 === result){
        result = 0 
    }
    return result
};  

59.螺旋矩阵II
一定要记住在三个边遍历的过程中一定要区间确定。

var minSubArrayLen = function(target, nums) {
    let result = nums.length+1;
    let i = 0 ;
    let j = 0 ;
    let sum = 0 
    for( ; j<nums.length ; j++){
        sum += nums[j];
        while(sum>=target){
            result = result < j-i+1 ? result : j-i+1;
            // console.log(re)
            sum -= nums[i++] 
            // console.log(sum)
        }
    }
    if(nums.length+1 === result){
        result = 0 
    }
    return result
};  

今日收获,记录一下自己的学习时长

3h

标签:977,nums,sum,随想录,length,let,result,数组
From: https://www.cnblogs.com/lijiacheng/p/17791729.html

相关文章

  • java数组 去重字符串去空格
    packagegta.custom.action.typeForm;importjava.util.ArrayList;publicclassTestmain{publicstaticvoidmain(Stringargs[]){String[]str={"2","2","3","1","4","4"};/......
  • #yyds干货盘点# LeetCode程序员面试金典:最小操作次数使数组元素相等 II
    题目给你一个长度为n的整数数组nums,返回使所有数组元素相等需要的最小操作数。在一次操作中,你可以使数组中的一个元素加1或者减1。 示例1:输入:nums=[1,2,3]输出:2解释:只需要两次操作(每次操作指南使一个元素加1或减1):[1,2,3] => [2,2,3] => [2,2,2]示......
  • 易混知识 | 数组指针 VS 指针数组
    ⛩️博主主页:@威化小餅干......
  • 代码随想录算法训练营第一天 | 704. 二分查找,27. 移除元素
    今日学习的文章链接和视频链接https://programmercarl.com/数组理论基础.html二分查找二分查找最开始看到感觉比较简单,随手写出来了左闭右闭的情况,从来没想过左闭右开的情况,涨了见识varsearch=function(nums,target){letlow=0;letheigh=nums.length;......
  • Vue localStorage 将数据存为数组
    VuelocalStorage将数据存为数组要把表单数据存成数组形式,在另一个页面通过v-for渲染展示,因为拥有同一个key值,在每次更新表单数据时都会发生数据覆盖现象。vartemplist=JSON.parse(localStorage.getItem("msgBody")||"[]");templist.push(this.msgBody);......
  • Java中 List和数组之间的常见转换方法
    List转数组1、使用for循环//要转换的list集合List<String>list=newArrayList<>();list.add("aa");list.add("bb");list.add("cc");//初始化需要得到的数组String[]array=newString[list.size()];//使用fo......
  • 【java基础-实战2】数组拷贝的几种实现方式
    在实际的业务开发中,基本上很少很少很少…会遇到数组拷贝的场景,甚至是我们一般都不怎么用数组,List它不香嘛,为啥要用数组。那么现在这个问题有点冷门,要实现数组拷贝,怎么办呢?1、基础写法:循环赋值最简单直接的写法,那就是新建一个数组,一个一个拷贝进去String[]src=newString[]{"a......
  • 代码随想录第一天 | 704. 二分查找 、 27. 移除元素
    https://leetcode.cn/problems/binary-search/第一眼看到题目的时候下意识直接搞了暴力搜索(一个一个对比),后来觉得时间复杂度太高了,就搞了二分法,之后再看文章,思路透彻了很多,因为我之前写二分法都是凭感觉,没有仔细琢磨过 https://leetcode.cn/problems/remove-element/帅!otto ......
  • Java笔记——数组静态初始化开始
    一维数组:静态初始化:定义格式:(1)数据类型[]数组名=new数组类型[](2)数组类型[]数组名={元素1,元素2,.....}练习:数组元素逆序:publicstaticvoidmain(String[]args){int[]arr={1,2,3,4,5,6,7,8,9,10};System.out.println("逆序前:");for(inti......
  • 前端面试题:数组、字符串方法
    数组1、push:末尾添加元素,改变原数组2、pop:删除并返回最后一个元素,改变原数组3、unshift:  开头添加一个元素,改变原数组4、shift:删除第一项,改变原数组5、concat:合并数组并生成一个新数组,不改变原数组6、join:  把......