Day2

Day2

977.有序数组的平方

题目建议: 本题关键在于理解双指针思想

暴力解法:先平方 ,后排序。

双指针法

左负数,中间接近零,右正数,平方后两边大中间小

左右2个指针从头开始,互相比大小,谁更大就把值赋给新的数组,再向中间移动一格,注意从数组的最大下标开始赋值以满足非递减。

注意i<=j否则最后一个元素无法赋值到新数组中

209.长度最小的子数组

滑动窗口,也是双指针的一种

值大于s,比较长度后左端就要向右移动缩小窗口

将开始的返回值设置为INT32_MAX,是int类型中最大的值

for里面套while,每次右端向右移动单位一,如果满足>=s,左端持续向右移动直到sum<s,之后进行下一次for循环,右端向右移动一。

如果一直移动,直到整个数组的和都无法大于s,则返回0,说明没有这样的子序列

其中2次使用" ? : "结构简化代码

时间复杂度:尽管for套了while,但是每个元素进出共2次,2*n 所以是O

(n)。

59.螺旋矩阵II

题目建议: 本题关键还是在转圈的逻辑,在二分搜索中提到的区间定义,在这里又用上了。

坚持循环不变量原则

img

如图,区间左开右闭

vector<vector<int>> res(n, vector<int>(n, 0)); 
 // 使用vector定义一个二维数组
 
  j < n - offset;
 // offset 控制每一圈里每一条边遍历的长度
   offset += 1;

注意n为奇数时最中间元素需要单独处理,赋值count

别忘了开始int middle的用意

1 声望
0 粉丝
0 条评论
推荐阅读
万字长文剖析ChatGPT
简单来说,ChatGPT 是自然语言处理(NLP)和强化学习(RL)的一次成功结合,考虑到读者可能只熟悉其中一个方向或者两个方向都不太熟悉,本文会将 ChatGPT 涉及到的所有知识点尽可能通俗易懂的方式展现出来,有基...

xiangzhihong15阅读 1.7k

数据结构与算法:二分查找
一、常见数据结构简单数据结构(必须理解和掌握)有序数据结构:栈、队列、链表。有序数据结构省空间(储存空间小)无序数据结构:集合、字典、散列表,无序数据结构省时间(读取时间快)复杂数据结构树、 堆图二...

白鲸鱼9阅读 5.4k

openKylin 0.9.5版本正式发布,加速国产操作系统自主创新进程!
2023年1月12日,中国桌面操作系统根社区openKylin(开放麒麟)正式发布openKylin 0.9.5操作系统版本。此版本充分适应5G时代需求,打通平板,PC等设备,实现多端融合,弥补了国产操作系统的短板,有效推动国产操作...

openKylin6阅读 8k

封面图
不会数学的程序员,只能走到初级开发工程师!
在我还是初级程序员时,每天也都粘贴着代码和包装着接口。那个阶段并没有意识到数学能在编程中起到什么作用,就算学了数学的部分知识,也没法用到编程中。但后来随着编程越来越久,逐步接手核心代码块开发时候,...

小傅哥3阅读 998

封面图
滚蛋吧,正则表达式!
你是不是也有这样的操作,比如你需要使用「电子邮箱正则表达式」,首先想到的就是直接百度上搜索一个,然后采用 CV 大法神奇地接入到你的代码中?

良许3阅读 1.5k

杨辉三角的5个特性,一个比一个牛皮!
杨辉三角按照杨辉于1261年所编写的《详解九章算法》一书,里面有一张图片,介绍此种算法来自于另外一个数学家贾宪所编写的《释锁算书》一书,但这本书早已失传无从考证。但可以肯定的是这一图形的发现我国不迟于1...

小傅哥3阅读 1.9k

stackoverflow 提问:“计算两个整数的最小公倍数的最有效方法是什么?”
作者:小傅哥博客:[链接]源码:[链接]沉淀、分享、成长,让自己和他人都能有所收获!😄一、前言嘿,小傅哥怎么突然讲到最大公约数了?这么想你肯定是没有好好阅读前面章节中小傅哥讲到的RSA算法,对于与欧拉结果...

小傅哥3阅读 1.8k

封面图
1 声望
0 粉丝
宣传栏