- 博客(38)
- 收藏
- 关注
原创 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
原创 代码随想录补|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
原创 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
原创 day14|层序遍历
这样会有一个问题就是,在最后一轮遍历的时候,left和right都是空但是依然被offer进了queue,导致queue不是空的,让!199右视图.把层序遍历每层的最后一个组成list。107自底而上.在原来的基础上加一个。429N叉树 把每个孩子都遍历了。637.层平均,非常简单。
2023-12-13 22:30:01 49 1
原创 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
原创 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
原创 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关注的人