首页 > 编程语言 >代码随想录-数组-C++总结

代码随想录-数组-C++总结

时间:2023-02-03 19:56:13浏览次数:62  
标签:矩阵 随想录 C++ LeetCode 力扣 数组 左闭

1.二分查找

重点区分左闭右开,左闭右闭两种写法中的差异,理解循环中的不变量,这样在return r还是l和什么时候l+1 r-1什么时候不需要+1-1很重要。

35. 搜索插入位置 - 力扣(LeetCode)

2.移除元素——双指针

27. 移除元素 - 力扣(LeetCode)

暴力解法就是n^2复杂度,遇到一个,把后面的全都往前移来覆盖。双指针的思路就是把数组分开成两部分,左边的都不是目标值,右边都是目标值,右指针搜索整个数组,左指针只负责在遇到非目标值时再覆盖并更新

3.长度最小子数组——滑窗 or 前缀和+二分

209. 长度最小的子数组 - 力扣(LeetCode)

首先O(n)的滑窗很直观,主要探讨一下nlogn的二分,将数组“积分”成前缀和形式,此时是一个递增数组,比如target = 10,对于原数组中第n个数,只需要寻找该数之后的前缀和数组中,值为target+sum[n-1]的即可。sum可定位len(num)+1,sum[1] = 0+num[0]

trick:C++中,最大可写成INT_MAX 最小INT_MIN

 

 

 4.螺旋矩阵——比较绕的模拟题

59. 螺旋矩阵 II - 力扣(LeetCode)这一题可用代码随想录中的方法解决,保持一种写法(左闭右开)到底,不容易乱

 

 

 54. 螺旋矩阵 - 力扣(LeetCode)这一题不一定是n*n的矩阵了,用上面的方法我试了一下会出问题,我参考了一个左闭右闭写法的,很巧妙,也是初始化最上层,最下层,最左和最右,最上层跑完后,直接+1,认为丢掉第一行,假如此时+1之后,最上层>最下层,直接break;左右同理;

 

标签:矩阵,随想录,C++,LeetCode,力扣,数组,左闭
From: https://www.cnblogs.com/sun-secretbase/p/17090315.html

相关文章

  • js中数组对象排序
    //数组对象按照指定属性排序--冒泡写法constduplicateRemovalBubbling=function(oldArr,key){for(leti=0;i<oldArr.length;i++){for(letj=0;j<oldArr.length......
  • JS数组的常用方法-常用篇
     1.join数组变成字符串   不改变原数组1letarr1=['I','Love','You']2console.log(arr1.join(),arr1);//I,Love,You,['I','Love','You']3......
  • C++ 1398:短信计费
    1398:短信计费【题目描述】用手机发短信,一条短信资费为0.1元,但限定一条短信的内容在70个字以内(包括70个字)。如果你一次所发送的短信超过了70个字,则会按照每70个字一条......
  • 找到所有数组中消失的数字
    给你一个含n个整数的数组nums,其中nums[i]在区间[1,n]内。请你找出所有在[1,n]范围内但没有出现在nums中的数字,并以数组的形式返回结果。constfindDisappe......
  • C++1155:回文三位数
    1155:回文三位数【题目描述】如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,求出所有的既是回文数又是素数的三位数。【输入】(......
  • LeetCode刷题,代码随想录算法训练营Day3| 链表理论基础 203.移除链表元素 707.设计链
    链表理论基础链表是通过指针串联在一起的线性结构,每个节点由一个数据域和一个指针域构成。链表的类型单链表双链表有两个指针域,一个指向下一个节点,一个指向上一个节......
  • js判断数组对象或对象对象数组是否包含元素包含值
    vararr=[{key:1,name:'牛百叶'},{key:2,name:'虾滑'}];//bool为true说明数组中包含这个对象为false则不包含varbool1=arr.som......
  • C++开发面试题合集
    1.epoll的工作原理(【360实习】C++开发)epoll是一种I/O事件通知机制,是linux内核实现IO多路复用的一个实现。在一个操作里同时监听多个输入输出源,在其中一个或多个输入输出......
  • C++ 哈希表查询_进入哈希函数结界的世界
    1.前言哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行API定制,对于大部分高级语言......
  • C++第四章类与对象
    一、面向对象的基本特点1.  抽象对同一类对象的共同属性和行为进行概括,形成类。先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态(对象相互......