自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 自用(不断补充):一些可以对比着练习的双指针/窗口数组题

1.2.这两道题本质都是”非递减的数组“,所以可以一头一尾。

2024-03-24 21:57:54 197

原创 acwing797、798 差分(一维,二维)

一维:二维:

2024-03-20 20:05:48 102

原创 AcWing 796. 子矩阵的和

之所以不好理解是因为没画格子,一个格子代表一个点,就很好理解了。这个题的重点是仿照一维的数组,所以。画个图举个例子就非常清晰了。

2024-03-20 11:27:12 571

原创 idea连接虚拟机mysql数据库失败

2.url后加allowPublicKeyRetrieval=true&useSSL=no。把advance和driver的useSSL设为False。1.关闭魔法,多试几次。

2024-03-18 22:25:24 333

原创 java 自己总结的二分查找法及其变种

示例 1:输入: nums = [1,3,3,5,6], target = 3输出: 0示例 2:输入: nums = [1,3,3,5,6], target = 4输出: 2示例3:输入: nums = [1,3,3,5,6], target = 1输出: -1int l = 0;//越界判断return -1;return l;

2024-03-18 22:18:19 610

原创 代码随想录|贪心3

对数组进行排序,如果前k个数全部小于0,直接反转,如果k有剩余,则反转最小值。从左往右比,比左边大的 ——》 左边值 + 1;比左边小的 ——》1;从右往左比,比右边大的 ——》 右边值 + 1;比右边小的 ——》1;最终的数组 ——》 max(左数组,右数组)

2024-01-02 21:23:01 374 1

原创 代码随想录|贪心day2

i 在 cover 的范围内移动,每移动一个元素,cover 得到该元素数值(新的覆盖范围),如果cover能够 >= nums.length - 1,说明能到达。有一点像,因为不需要写出哪个区间卖出买进,所以判断prices[i] - prices[i - 1]的值的大小,如果这个值是正的,那么就说明是可以抛出的就行,即。这道题的关键在于 不要纠结每一步怎么走,而是看。,覆盖范围内有交集则有解(首尾相连)。买股票的最佳时机,这道题其实和。

2024-01-02 17:09:20 373

原创 day30|贪心

局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。这道题的想法是:倒着来遍历已经排好序的胃口数组,用大饼干满足大胃口。给了很详细的讲解,自己做真的不会。全局最优:选取最大“连续和”

2023-12-29 22:10:39 377

原创 代码随想录补|leetcode 46、47全排列问题

的40题一样,i > 0 && nums[i] == nums[i - 1] && used[i - 1] == 0时,continue;此外,和46一样,当list.contains(nums[i]) && used[i] == 1时,说明竖着的已经用过这个数了,也需要continue。这道题和组合问题不同的是,本题允许[1,2,3][1,3,2]这种重复的,所以就不需要for循环时设定开始的索引避免重复。这道题和上面不同的地方是本题的nums数组允许有重复,涉及去重问题。

2023-12-29 17:16:27 506

原创 代码随想录补|leetcode491

2.本题是要按数组原本的顺序求子序列,因此不能sort数组,不能用子集问题的used数组方式去重。注意set集合在每一层去重,是横着去重的。每次回溯都有生成一个新的set集合,就不会影响竖着的。这也是和used数组去重不同的地方。这道题和子集Ⅱ问题的共同点是:都是收取过程中的结果。不同点是:1.本题要求递增子序列中。

2023-12-29 11:38:32 374

原创 代码随想录补|leetcode90 子集问题

解释见这两篇,代码拼一下就行。

2023-12-28 22:54:17 348

原创 代码随想录补|leetcode78 子集问题

这道题回溯结束的条件是startIndex == nums.length(),因为这代表已经把这个数组遍历了一遍。同组合问题,为了防止(1,2),(2,1)这种重复子集出现,每次回溯时startIndex++。这道题和之前的组合问题不一样的是,组合问题是获得叶子节点的结果,这个子集问题是每一次的遍历都是结果。所以result.add()这个操作应该放在回溯函数的开头,这样也可以很巧妙的把[ ]这个空集合add进去。

2023-12-28 22:44:19 476

原创 代码随想录补leetcode day25|93

这道题和分割回文不同的地方:分割回文没有要求要分割成几段,所以结束的条件是分割的索引startIndex == 字符串的length - 1。但是这道题要求分割成四段,所以引入分割点的数量pointNum,当pointNum == 3时,如果最后一段也符合要求,那么就是正确的。在写代码时注意几个坑,以注释的形式写了。

2023-12-28 22:21:16 411

原创 day24

不同的地方在于,这个题允许有重复。即一个每次从i+1开始,一个每次从i开始。

2023-12-27 22:47:42 455

原创 day23

【代码】day23。

2023-12-24 21:49:31 25

原创 day22

【代码】day22。

2023-12-22 17:19:37 23

原创 day21

【代码】day21。

2023-12-22 16:48:46 28

原创 day20|

450.删除叶子节点。

2023-12-20 11:32:59 38

原创 day19

中序遍历 —— 加到map中——转大顶堆——得到和peek()一样的值的数,非常繁琐。

2023-12-19 21:54:32 46 1

原创 day18

null:此时返回的root的值为root1.val + root2.val。和构造二叉树一样的思路,比较简单,注意在比较时每轮遍历nums的时候是从begin开始,end结束。= null:此时返回root2;= null && root2 == null:此时返回root1;root1 == null && root2 == null:此时返回null;2.大于时,去左子树查去。3.小于时,去右子树查去。

2023-12-18 21:44:59 32

原创 day17|最左结点,路径问题

和112一样,就是注意在list加path的时候,不能简单的写成:list.add(path);这样的话指向的还是原来的列表,需要重新建一个新的列表,用list.add(new ArrayList(path))方法和求所有路径很像,不同的是,这个只要存在符合条件的,return就行了。513 这个题是要找最左边的结点,不是最后一层的第一个左节点,就很简单了。

2023-12-16 23:29:33 33 1

原创 day16

这道题的重点在于:递归过程中如果左子树或者右子树有一个为-1,那就不是平衡二叉树了,本轮没必要再继续了,而且下一轮、下下轮...也可以直接返回了。

2023-12-16 17:50:16 42 1

原创 day15|104

【代码】day15|104。

2023-12-15 17:55:33 23

原创 day14|层序遍历

这样会有一个问题就是,在最后一轮遍历的时候,left和right都是空但是依然被offer进了queue,导致queue不是空的,让!199右视图.把层序遍历每层的最后一个组成list。107自底而上.在原来的基础上加一个。429N叉树 把每个孩子都遍历了。637.层平均,非常简单。

2023-12-13 22:30:01 49 1

原创 day13|二叉树前序、中序、后序遍历、

int val;

2023-12-12 22:43:07 20

原创 day12|239,347

本题这个单调队列的重点在于:每次窗口移动的时候,调用que.poll(滑动窗口中移除元素的数值),que.offer(滑动窗口添加元素的数值),然后que.peek()就返回我们要的最大值。本题的暴力解法是超时的,所以得用单调队列,要保证队列里单调递减或递增的原则。

2023-12-12 17:26:47 39

原创 day11|20、1047、150

有点像学数据结构时老师举得例子。遍历s,如果遇到的是(/[/{,则入栈)/]/},如果遇到的是)/]/},若相等则出栈,不相等就说明不配套。如果stack始终为空,说明肯定没有配套的。最后看栈是否清空了。

2023-12-09 22:19:41 32 1

原创 day10|232,

这道题要两个栈实现队列,那么就是一个栈负责进,一个栈负责出,出的那个里没东西了,进的那个就pop().出的那个再push(),想通就比较简单了。queue1作为主队,queue2作为备用。

2023-12-08 22:12:40 38

原创 day9| KMP算法

真的很难,只是把原理记住了,这里默写一遍.KML算法在从一个字符串找某一字符串中是否出现的场景下经常应用。

2023-12-08 19:30:38 56

原创 day8|344,

左端为left,右端为right,交换left和right上的数值知道left >= right,其中=对应的是奇数个元素的数组,>对应的是偶数个元素的数组。1.split指令 以空格为regex划分;2.对得到的判断是否为“”,如果不是则保留;这道题不难就是有点麻烦,真的很麻烦。2.StringBuilder转一下。3.反转字符串 并加空格。1.找到要右旋的起始位置。

2023-12-06 22:28:12 48 1

原创 day7|454,383,15,18

这道题有点像两数之和,不同的是,两数之和可以通过map(num1,value-nums1)一轮就确认,四数之和要通过两轮,第一轮遍历nums1+nums2,而且value对应的是和出现的次数。1.nums[i]的去重:注意nums[i] == nums[i-1]是正确的,而nums[i] == nums[i+1]是错误的,因为left=i+1,但是left和i是可以一样的,就结果集内部是允许重复的。2.当和为0了,这一轮left和right就没用了,需要重新找,left和right的值去重后再各自加或减;

2023-12-05 22:30:26 54

原创 day6|242,349,202,1

day4。

2023-12-04 22:39:11 67

原创 day4| 24,19,02.07

day4: 24题的递归写法不太会做,环形链表没来得及做,等明天24.这个题不画图非常不容易做,图源 .

2023-12-02 22:09:10 60 1

原创 day3| 203、707、206

day3:707不会。

2023-12-01 21:26:49 49 1

原创 day2|leetcode 977、209、904、59

非科班 基础较差day2:209,59自己做时都不会。

2023-11-30 21:04:44 71

原创 day1|leetcode 704、35、34、69、367、27

非科班,之前只是学过数据结构课,基础较差,写给自己的碎碎念day1: 34题2分法的方法没做出来,69、367有int,long的坑,27题没做出来快慢指针的做法。首先是二分查找法的使用前提条件:1.确定可以使用后,有两种写法1.左闭右闭:这是我之前一直用的写法,其中需要注意的是int mid = start + (end - start)/2或者是int mid = start + (end - start)>>1。这样相比于常见的(start = end)/2,可以防止溢出。

2023-11-29 16:50:52 45

原创 自用 datagrip连接虚拟机数据库连接失败问题

本地DataGrip连接Linux服务器中MySQL失败处理方法_datagrip无法连接数据库_山顶风景独好的博客-CSDN博客

2023-11-15 12:08:06 314

原创 自用 爱思维尔部分期刊要求对于超过6位作者,应列出前6位,然后是“et al”,latex排版改.bst文件

其中elsarticle-num是要应用的bst文件, reference是你的bib文件。之后打开bst文件,搜索format.names函数。爱思维尔的模板太恶心了太恶心了。

2023-10-24 16:35:33 535 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除