自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

萝卜丝儿皮尔

概率意义下的几乎处处不懂

  • 博客(246)
  • 资源 (3)
  • 收藏
  • 关注

原创 LeetCode ! 687 Longest Univalue Path

思路:特别之处在于,设置一个全局变量,用于记录最长同值路径的答案(不断取最大,所以它一直在增长,也不用担心换条路径会覆盖掉之前路径的最优解)。递归函数只返回,以head为起点的最长同直路径的长度。参考资料:leetCode 官方解答。

2023-06-06 17:15:29 2

原创 LeetCode 54. Spiral Matrix

思路:用矩阵的左上角点和右下角点确定一个框(最外层),然后一圈一圈的地打印,先打印最外层,借助矩阵的左上角点和右下角点的坐标分别对角线方向向内收缩一步,可以到达新的框(也就是次外层),再打印次外层,……可能是一个数,可能是一行数,也可能是一列数。注:要考虑到 最后一圈可能出现的情况,即。参考资料:左程云算法课。

2023-06-06 15:54:12 10

原创 LeetCode ! 50. Pow(x, n)

注2: 这道题要考虑到幂可能取负数。对于普通负数,我们也可以直接取相反数,计算得结果后再取倒数即可;特别要注意的是,幂可能取到 系统最小值, 这时直接取相反数还是 系统最小指 它自身,于是需要特别处理,大致思路是。注:整数的幂可以扩展到矩阵的幂, 把res的起点设置为单位矩阵即可。矩阵幂的应用见斐波那契数列相关问题(详细可查阅《程序员代码面试指南》)。参考资料:左程云算法课 , 《程序员代码面试指南》二进制表示的最低位(最右边的那一位)是1, 那么。二进制表示的倒数第二位是0,那么。

2023-06-06 15:07:12 58

原创 LeetCode ! 56 Merge Intervals

思路:构造一个区间类Interv, 目的是创建Interv[] ,然后调用Arrays.sort对这个数组进行排序(排序规则定义为区间首端点小的区间在前);参考资料:左程云算法课。

2023-06-05 20:42:05 4

原创 LeetCode !! 69 plusOne

倒序遍历,遇到第一个不为9的位加一并结束返回数组,否则(也就是当前位是9)直接化为0.如果遍历结束,还没有结束返回值,那么说明原数组中都是9,于是 创建新数组,手动加一。参考资料:左程云算法课。

2023-06-04 19:33:13 6

原创 LeetCode 70 Climbing Stairs

参考资料:《程序员代码面试指南》

2023-06-04 19:02:29 15

原创 LeetCode !73. Set Matrix Zero

参考资料:左程云算法课。

2023-06-04 16:55:03 83

原创 Leetcode 75 Sort Colors

如果他所指的元素小于1,那么 把当前元素发货到

2023-06-04 15:29:51 5

原创 LeetCode !!!76 Minimum Window Substring

如果此时窗口左端点压的字符是我们需要的,即 need[l]>0, 那么 我们进一步判断它的移除是否会影响到count, 如果窗口左端点刚好位于“完全覆盖目标字符串需求”的临界点时(即在count==t.len的前提下 判断have[l]==need[l]), 那么窗口内有效字符数count–;建立滑动窗口,先向前移动滑动窗口的右端点,移动过程中 我们只在乎那么被需要的字符, 跳过那些不被需要的字符(它依然会被纳入窗口中,只是不做后续判断);关于收缩窗口,需要判断此时窗口左端点压的字符是不是我们所需要的,

2023-06-04 15:01:02 5

原创 LeetCode ! 78. subsets

可以考虑使用n个二进制位组成的数代表一个集合,具体地,如果第i个二进制位上是1,那么 把nums[i]纳入到集合中;如果第i个二进制位上是0,那么 不把nums[i]纳入到集合中。思想是:先在ans中生成一个空集合,新来一个数,则把已有的所有集合都加上这个数,形成新集合。再把这些新集合加入到ans中,这样随着数组的遍历,逐步增长出来所有子集合。这里 我们借用 LinkedList 型的path 来收集 一个集合中该容纳的元素,因为如此一来,我们可以很方便地从链表的尾部加入和删除数据。

2023-06-03 11:18:09 113

原创 LeetCode ! 79. Word search

思路:主函数中枚举路径的起点board[i][j],从str[0]开始匹配str。只有有一个成功,就返回true.如果不给最左上角的A做上标记,那么等走到D时,有可能再次回到 最左上角的A, 即 “走重复路”,不符合题意。注意:为了防止”走重复路“,应该给走过的点做上标记,尝试完四个方向之后记得恢复现场。设计递归函数检查从board[i][j]开始能够配出str[index…参考资料:左程云算法课。

2023-06-03 09:46:57 134

原创 LeetCode 84. !! Largest Rectangule in Histogram

具体点,对每个位置上的数i,找自己左边、离自己最近、比自己小的数的位置记为i1, 找自己右边、离自己最近、比自己小的数的位置记为i2, 此时,计算该位置所能构造出的最大矩形面积为nums[i]*(i2-i1-1)。另外,“找自己左边、离自己最近、比自己小的数的位置 ” 可以使用单调栈做到。注意栈顶元素与新数相等时,也同样弹出,这是因为 即便此时被弹出的栈顶元素所结算的”最大矩形面积“不是它真正的最大矩形面积,也会有新数(与被弹出的栈顶元素相等) 帮它计算 真正的 “最大矩形面积”,然后优化全局变量max.

2023-06-03 08:57:02 8

原创 Leetcode 98!! validate binary search tree

参考资料:leetcode官网热心网友的分享。

2023-06-01 21:26:35 6

原创 LeetCode LRU

考虑到,哈希表能够很快地查找,链表能够很快地加入和删除,综合这两方面的优势,可以设计出这样的结构。双向链表的头表示最近被更新的结点,尾表示最迟被更新的结点, 从头到尾表示着时间顺序。我们希望实现一个结构,能够很快地取出get、存入put. 与此同时,我们还希望每次操作都能将被操作的那条记录放在最前面,当结构达到的容量上限后,删除掉最老的那条记录。另外,需要注意的是,删除、增加操作对应地要记得删除、增加哈希表和双向链表中的记录。

2023-06-01 17:24:24 8

原创 LeetCode copy list with random pointers

注意:有些地方比如随机指针,需要判断,只有在确认不为空时,才能用.next.遍历第一遍时,在原结点的后面复制该节点;遍历第三遍时,分离原链表和副本。遍历第二遍时,复制随机指针;

2023-06-01 14:12:47 8

原创 leetCode !! word break

方法一:字典树+动态规划首先,创建node类,每个对象应该包含:一个node array nexts(如果有通往’a’的路,那么对应的nexts[0]就不该为null);一个boolean 变量(如果到达的这个字母恰好是字典中某个候选串的结尾,那么 标记end=true);然后,根据 字典,建立字典树;接着,使用动态规划的方式,检查目标字符串str是否可以用字典中的候选串拼出来。具体地,dp[i]表示 str[i…] 是否可以用字典中的候选串拼出来。

2023-06-01 11:39:37 210

原创 LeetCode sortList 对链表进行排序

参考资料:左程云算法课。

2023-05-31 20:20:36 3

原创 LeetCode 149. ! Max Points on a Line

参考资料:左程云算法课。

2023-05-30 20:26:20 7

原创 LeetCode 151. ! Reverse Words in a String

注意:给定的字符串中单词两边都可能有冗余的空格,需要处理一下,然后翻转整个字符串,最后翻转每个单词。参考资料:代码随想录。

2023-05-30 19:59:52 484

原创 leetCode 162 !Find peak Element

如果是,则返回其下标,并结束;如果不是,说明左右两端点都小,峰值必然在余下(中间部分)取到,则用二分法检查nums[1…具体地,找中间位置的数,看他是不是峰值,如果不是,那么可以通过它和其邻居的大小判断,下次应该去哪一侧做检查。首先判断左右两端点是否是峰值,参考资料:左程云算法课。

2023-05-30 16:03:01 32

原创 leetcode Gas Station

如果从x到y都无法完成的话,那么从z到y更无法完成,其中z是x去y的沿途结点。也就是,一旦x被确定不是良好出发点,那么x到y中间的点也必然不是良好出发点,不用试了。方法2:左老师把题目推广成”判断每个点是否是良好出发点“,所以返回的是一个Boolean数组。具体见 《程序员代码面试指南》第二版。参考资料:《程序员面试代码指南》

2023-05-29 15:50:15 8

原创 LeetCode. !!!131. Palindrome Partitioning

枚举第一个划分位置,如”abc“。其第一个划分位置end所有可能的结果是 “a”, “ab”, “abd”;然后判断是否回文,如果是,那么调用子递归,解决end+1到len-1上的划分问题。其中,判断str[l…r]是否是回文,可以用动态规划的方法提前计算好放进dp表,作为递归函数的参数,让递归函数带着跑,需要查的时候就查一下。参考资料:左程云算法课。

2023-05-29 13:14:15 8

原创 LeetCode surrounded region

思路:考虑到目标是“把所有内部被X围住的O转成X”,把所有外围(还有与外围相连的)的O 转成 F ( 也可以是其他别的字符);然后,遍历整个矩阵,把此时所有O转成X,把所有F恢复成O.

2023-05-29 11:13:31 643

原创 LeetCode Longest consecutive subsquence

然后,对于 由于新数的到来而被延长的连续区间,我们只更新该区间的头尾点在map中的记录,因为后来的点如果落在这个区间内,对“延长区间”这件事毫无帮助。建立一个map,其key是num值(来自于给定数组),value是其所在连续区间的长度(如<100,1>,则说明目前只有100自己构成连续区间)。才被放进map中,其值先设为1(他自己作为区间,长度本身就是1;另外,也可起到去重的作用,后来的点如果=i,自动被忽略);看新数能不能接上自己左边的连续区间(如果有的话),再检查。参考资料:左程云算法课。

2023-05-29 10:48:59 485

原创 LeetCode !!!word ladder

分别从String begin和String end两个方向做广度优先搜索(注:实际只在startSet上做广度搜索,只不过是当遍历完一个startSet后,会考虑是否与endSet互换,所以表面上是双向广度优先搜索)。startSet中的每一个元素都会被枚举到,对每一个元素改变一个字符,检查他是否在endSet中出现过。首先,根据给定的单词表,建立图(结点1与结点2都属于单词表,且 可以通过修改一个字母得到彼此,如:abd----abc);的框架一样,找begin到end的最短通路。

2023-05-29 09:32:20 699

原创 【leetCode】ugly number

参考资料:《剑指offer》

2023-05-28 20:41:18 8

原创 leetCode. isParlindrome

参考资料:左程云算法课。

2023-05-28 20:39:45 7

原创 leetCode. Pascal‘s Triangle

参考资料:左程云算法课。左老师的写法更简洁,👇。

2023-05-28 17:20:27 8

原创 leetCode. Populating Next Right Pointers in Each Node;Binary Tree Level Order Traversal;

参考资料:《程序员代码面试指南》第二版——二叉树的按层打印与ZigZag打印。关键点:如何知道什么时候换行。

2023-05-28 09:45:57 101

原创 leetCode. maximum product array

记录 以当前数为结尾的子数组乘积的最大值和最小值,以备后时之需。以当前数为结尾的子数组乘积的最大值, 是 当前数、当前数和Min、当前数和Max 取最大,得到的(相当于 可能是自己一个数作子数组是最优的、也可能联合前一个数的最优解一起是最优的, 这两种情况)。Min 是前一个数作结尾的子数组乘积的最小值,Max是前一个数作结尾的子数组乘积的最大值。考虑到数组中有正有负,两个负数的乘积可能变成很大的正数,所以在遍历过程中要。参考资料:左神算法课。

2023-05-27 20:32:57 8

原创 leetCode 150 Evaluate Reverse Polish Notation

思路:建立一个栈,依次把数放入。当遍历到运算符时,弹出两个数,计算结果并将其放入栈。最后的栈顶就是答案。参考资料:左神算法课。

2023-05-27 17:06:30 882

原创 【leetcode】!longest substring without repeating chars

对每一个位置str[i]来说,找它的以str[i]为end、最长、无重复字符的子串 的过程 相当于 尽可能以str[i]为end, 向左扩, 直至扩到 以str[i-1]为end、最长、无重复字符的子串的尽头(尽头1),或者 又遇到了 str[i]的相同字符 (即它最近一次出现,尽头2)会扩不动。尽头1和尽头2的最大值,就是 以str[i]为end、最长、无重复字符的子串 的开头。然后,记录长度cur,取所有cur的最大值,即为答案。参考资料:《剑指offer》,《程序员代码面试指南》

2023-05-26 15:05:56 23

原创 【leetCode】Maximum subArray & 【剑指】礼物最大价值

答:分两种情况:1. nums[i] 自己做 subArray;2. nums[i] 联合 nums[i-1]的最优解一起 做 subArray;对这两种情况取最大即可。计算 以nums[i]为结尾时的子串的 maxSum 作为 local optimum, 然后 对i=0,1,…,n-1, 取 local optimum的最大值即可。那么 如何求 local optimum,即 以nums[i]为结尾时的子串的 maxSum, 呢?参考资料:《剑指Offer》

2023-05-26 11:39:18 790

原创 【leetcode】Find Median From Data Stream

然后,调整两个堆(balance()),使得二者size相差≤1,这样才能“暴露”出两个“预备中位数“(指大根堆、小根堆的堆顶),便于找出中位数。《剑指offer》给出的思路与之类似,但是 在维护两个堆大小的调整上有些别扭(个人感觉),而 算法课 给出的代码更自然——先往大根堆里加,后来的数与大根堆堆顶比较,加入到相应的堆中后,用balance函数一起调整两个堆的size。如果对数组排序的话,小于中位数的数 总是 位于 中位数 左侧,大于中位数的数总是 位于中位数右侧。

2023-05-26 11:20:31 948

原创 【leetCode】missing range

注意:遍历到结束,lower如果小于等于upper, 这部分的missing range也要补充上。思路:遍历数组的同时,更新lower.参考资料:左神算法视频课。

2023-05-26 09:24:52 943

原创 【leetcode】分数到小数 Fraction to recurring Decimal

比如:测试案例中可能会有很大很大的测试值,这里是转成Long类型来处理。需要注意:HashMap<Long,Integer>,而在外面声明变量就是 long.我发现即便是有思路(我已经听老师讲过一遍了+按着老师的写法写过一遍),还是有很多细节问题是考虑不到的。参考资料:左神算法课。

2023-05-25 20:15:44 10

原创 【面試神坑】Java中的 == 和 .equals

【代码】【面試神坑】Java中的 == 和 .equals。

2023-05-25 14:31:56 15

原创 【英文写作练习1】

这是一张英文书面表达的练习纸,谢谢阅读~

2022-07-09 13:51:08 214 1

原创 【凸优化】maximal 与 maximum的不同

赵启超教授的《离散数学L8B》greatest element从最上面的一个点往下走,能够走到所有点,那么这个点就是gratest element;least element, 从最下面的一点往上走,能够走过所有点,则称这个点就是least elementgreatest element 与maiximal element之所以会不同,是因为partial order 的定义本身暗示了不是任意两个元素都是可比的(comparable);如果是total order,那么greatest eleme

2022-05-30 16:54:33 960

原创 a letter to a penpal

OH, my dear friend, I DEFINITELY back up your decision. YES, everyone should purse what he wants, instead of involving in a rat race. By the way, my friend, I have to say that you ABSOLUTELY reply me whenever you want. Plus, I hope you WON’T stew over that

2022-05-23 20:20:59 150

关于微分中值定理的的学习注记

这是一篇创新创业实践课程作业,主要围绕大学生数学竞赛中对微分中值定理的考察展开,学习并总结了几种构造辅助函数的简捷方法,最后讨论了双介值问题的解题思路。

2020-11-23

基于移动设备SDK脱敏数据的地区-背景白板.pdf

一篇来自中国人民大学统计学院的学术报告PPT。基于移动设备SDK脱敏数据的地区构造了地区人群聚集度指标。

2020-06-10

提升编程能力在数据科学领域占有一席之地_阮敬.pdf

作者 阮敬(首都经济贸易大学统计学院)对当下社会无处不编程的见解,通俗易懂。文献来自期刊《中国统计》

2020-06-06

空空如也

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

TA关注的人

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