自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试经典150题【141-150】

剪枝:我们可以使用 Trie结构进行建树,对于任意一个当前位置 (i,j)而言,只有在 Trie 中存在往从字符 a 到 b 的边时,我们才在棋盘上搜索从 a 到 b 的相邻路径。对所有的边缘O进行dfs遍历,将其变为#.再将所有的内陆的O变为X,再将#变为O即可。首先一个多叉树里面应该有两个属性,是否结尾,下面的元素。添加的时候,如果没有,就新增一个TrieNode就行。当然对于DFS,更通用的模版是先访问,不管是否能访问。最广泛的是用BFS去得到每一个入度为0的,直到最后。

2024-04-06 10:56:20 491

原创 面试经典150题【131-140】

/ 找第一个等于target的位置// 重点} else {// 最后一个等于target的位置left = 0;// 重点} else {以找最左边的first为例,即使找到了,也要再做一次right = mid-1;继续遍历。直到不等于(即越界)

2024-04-03 17:17:59 1111

原创 面试经典150题【121-130】

如果不想提前塞入[2,6]这后面四个的话,可以选择当弹出 j=0的时候同时塞入(i,j+1)和(i+1,j)比如nums1={1,2,3,4,5}. nums2={6,7,8,9,10}先把[1,6],[2,6],[3,6],[4,6],[5,6]塞入到优先队列里。每次出来一个就选择(i,j+1)塞入队列,比如[1,6]出来了就塞入[1,7]左边维持一个大根堆,右边维持一个小根堆。要不只塞左上角一个,如果弹出的是第一列的,还要再多塞入一个下一行的最左边的。对于{-1,-1,-1}这种,也要取一个数字。

2024-03-31 00:09:23 884

原创 面试经典150题【111-120】

建立数组的时候长度要加一,不然直接dp[0][0]为s1前1个字符和s2前1个字符能不能组成s3的前2个字符,这显然是不合适的。其中,dp[i-1][j-1] 表示替换操作,dp[i-1][j] 表示删除操作,dp[i][j-1] 表示插入操作。第一行和第一列用来缓冲,1 到 length 这些索引才是符合题意的,因为要兼容第二行的 i-1,j-1之类的需求。dp[i][j] 表示 由s1的前i个字符 和 s2 的前j个字符,能不能组成s3的前 i+j 个字符。M是很大的,N是很小的。

2024-03-27 20:12:34 924

原创 面试经典150题【101-110】

用哈希表就是,先确定一个点(N),计算与其他所有点(N)的斜率,将斜率k存储到哈希表中。先在每一行下棋,然后下一行,然后回溯到这一行没下。递推公式: dp[i][j]=dp[i-1][j]+dp[i][j-1];然后ij都从1开始循环也蛮好的。暴力的话就是先确定两个点,再依次遍历其他的点,看斜率是否等于AB的斜率。HashMap应该是针对于每一个 i 点的,则每一个 j 点都要统计。三个点,ABC,AB和BC的斜率应该一样。这个是倒序的,从三角形的下边到上面。直接二分去搜,牛顿的数学太复杂。

2024-03-26 22:47:30 382

原创 面试经典150题【91-100】

排列问题,讲究顺序(即 [2, 2, 3] 与 [2, 3, 2] 视为不同列表时),需要记录哪些数字已经使用过,此时用 used 数组;组合问题,不讲究顺序(即 [2, 2, 3] 与 [2, 3, 2] 视为相同列表时),需要按照某种顺序搜索,此时使用 begin 变量。做一个helper函数,终止条件,dfs,这一步要加的,dfs,减去这一步加的。注意dfs中的i , 从begin到len , 并且也要传递到下一个dfs中去。一维dp的子问题,基本就是与dp[i-1]和dp[i-2]有关系。

2024-03-25 21:27:37 858

原创 面试经典150题【81-90】

如果 key 不存在,使用 key 和 value 创建一个新的节点,在双向链表的头部添加该节点,并将 key 和该节点添加进哈希表中。然后判断双向链表的节点数是否超出容量,如果超出容量,则删除双向链表的尾部节点,并删除哈希表中对应的项;通过哈希表定位到该节点在双向链表中的位置,并将其移动到双向链表的头部,最后返回该节点的值。如果 key 存在,则与 get 操作类似,先通过哈希表定位,再将对应的节点的值更新为 value,并将该节点移到双向链表的头部。截取出那段要反转的链表,然后用多个节点,遍历即可。

2024-03-18 23:23:22 929 1

原创 面试经典150题【71-80】

首先要明白,maxGain求的是什么,求的是经过我这个root节点以后,单边的最大值。因为只有这样,才能搞 root.val +maxGain(root.left) +maxGain(root.right)的值为最大。不过因为是完全二叉树,则可以判断是否完全,若是完全则直接2的n次方-1,否则就DFS,简单的BFS即可,当 i == size -1 的时候加入答案数组中。要不p,q在root的两侧,要不p和q其中一个是root一个是小弟。如果找到一个节点,就返回一个节点。如果只有一个有值,则为其中的一边。

2024-03-10 10:30:30 435

原创 面试经典150题【61-70】

根据preorder[0]去切开Inorder数组,并且得知数量后,再行切开preorder数组,最后迭代即可。新建两个链表,一个里面的值恒小于x,一个里面的值恒大于等于x,再合并两个链表即可。树这边还是用递归,先处理自己的逻辑,然后直接扔给左右子节点。BFS就是创建一个队列,一行一行遍历。看看能遍历几行罢了。直接先序遍历放到数组里,然后挨个取出来建立新树即可。第二步:找head, 第三步:断环。永远是最左边的和最右边的想比较,然后往里面靠近。树的问题最经典的就是DFS和BFS。树这里就是递归去做就行。

2024-03-08 16:43:54 401

原创 面试经典150题【51-60】

比如我在栈一塞入[ 1,2,3] ,那我在最小栈就塞入 [ 1,1,1] ,然后弹出的时候一起弹出就行。设置虚拟节点0,当有两个数相同的时候,cur.next.val == cur.next.next.val。最后,我们然后map.get(head),也就是对应的新链表的头节点,就可以解决此问题了。map.get(原节点.random),得到的就是对应的新节点.random。map.get(原节点.next),得到的就是对应的新节点.next。从上图中我们可以发现,原节点和新节点是一一对应的关系,所以。

2024-03-04 11:44:40 1023

原创 面试经典150题【41-50】

方法二:哈希表记录[k,v]—> [ nums[i],i] ,如果包含则比较与i的距离,大于k则将[nums[i],j] 赋值给[nums[i],i] ,继续遍历。然后再遍历一遍Set, 如果包含 nums[i]+1,依次遍历有没有nums[i] +2, nums[i] +3 等等。可以放到map里 [key,value] ->[ nums[i], 左右最长的长度]先按左区间排序,然后依次遍历,根据 nums[i+1][0] 和 nums[i][1] 判断是否需要合并。所有的这种二维数组的,都要先排序。

2024-02-28 18:58:50 891

原创 面试经典150题【31-40】

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0。请使用 原地 算法。定义三个数组,int [][]row, row[i][j], i代表第几行,j代表出现的元素。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。然后用map.put(words[i],i) 与 map.put(s[i],i)判等就行。关键是找到公式: matrix[i][j] -> matrix[j][n-1-i]box[i][j], i代表第几个小格子,j代表出现的元素。

2024-02-26 16:54:05 986 1

原创 面试经典150题【21-30】

若向内 移动长板 ,水槽的短板 min(h[i],h[j])​ 不变或变小,因此下个水槽的面积 一定变小。若向内 移动短板 ,水槽的短板min(h[i],h[j]) 可能变大,因此下个水槽的面积 可能增大。正常的话要考虑两个东西,一个是找不到则答案输出为0,还有是因为是Min函数,要考虑ans的初始值。要不就是移动到已有的(在Pianyi数组中),要不就是全部移动(移动nSize+1)2.当前行不是最后一行,且只有一个单词:该单词左对齐,在行末填充空格;先定一个first,然后就是求两数之和,双指针。

2024-02-24 17:20:58 1026

原创 面试经典150题【11-20】

没意思,注意一下最后可能有空格,先写个while循环把空格排除掉就行。

2024-02-20 19:31:56 903

原创 面试经典150题【1-10】

在每一天,你可以决定是否购买和/或出售股票。你也可以先购买,然后在 同一天 出售。1,4,7,3,6,2,5,1.是有顺序的,也可能是几个顺序环。然后倒转前k个,还有后面的几个。5,6,7,1,2,3,4即为答案。要注意他写的是,只左移动(right–)或只右移动(left++)或者定义一个大数组来计数,这个数组也不是很大,因为H指数最大就是n。如果右边扔进来的也是val,那么在下一次循环的时候还会再扔。length − 这是要复制的数组元素的数量。3.先全部倒转,7,6,5,4,3,2,1。

2024-02-17 23:26:04 1167

原创 剑指offer 21-30

2023-09-27 17:08:35 115

原创 剑指offer11-20

所有的dfs都是从每一个点开始,往所有方向遍历,dfs的参数列表还要传一个全局的数组去判断合不合适继续往下走。n&(n−1) 解析: 二进制数字 n 最右边的 1 变成 0 ,其余不变。肯定不是遍历一遍O(N),这种变相有序,也是二分。二分也不容易啊,要思考。先处理负数,然后要提前处理奇数。其实最后当b==1的时候也要处理奇数。或者直接调用Integer.bitCount(n)

2023-08-14 19:39:58 167

原创 剑指offer-3-10

剑指offer3-10

2023-08-03 12:39:23 121

原创 13-函数式编程

OnJava13-函数式编程,部分

2023-08-01 12:18:05 98

原创 程序员面试金典17.*

程序员面试金典第17章部分,Java编写

2023-08-01 12:16:31 502

原创 关于ArrayList的初始化和删除的总结

关于ArrayList的初始化和删除的总结

2023-05-24 17:39:58 129

原创 程序员面试金典16.*

程序员面试金典16,Java

2023-05-09 10:30:04 772

原创 程序员面试金典10.*

程序员面试金典第十章-排序与查找。

2023-05-08 00:07:08 355

原创 文章迁移说明

以后文章都在这个上面了。

2023-03-29 23:22:25 47

原创 程序员面试金典8.*

程序员面试金典8.*

2023-01-01 22:34:30 441

原创 11-内部类and 12-集合初步

11-内部类and 12-集合初步

2023-01-01 22:32:43 428

原创 OnJava基础卷精选6初始化与清理+final关键字+接口

OnJava基础卷精选6初始化与清理+final关键字+接口

2022-12-18 21:59:26 83

原创 OnJava第0章闲聊

闲聊,随笔,学习规划,心情记录。

2022-11-23 20:24:21 628

转载 设计模式详解转载

黑马程序员-设计模式笔记-转载

2022-11-23 19:34:36 83

原创 程序员面试金典5.*

程序员面试金典5

2022-10-19 22:37:27 221

原创 程序员面试金典4.*

程序员面试金典第四章Java个人练习

2022-10-17 10:29:52 155

原创 算法训练营配套练习1,3

字符串的处理:字典树,AC自动机,后缀树组

2022-09-04 15:30:24 160

转载 sql_NULL_in/not in

not in 和in 处理NULL时不同情况

2022-07-29 21:21:12 368

原创 SQL刷题1

MySql力扣刷题1

2022-07-27 11:03:00 100

原创 程序员面试金典3.1-3.6

程序员面试金典3.1-3.6

2022-07-13 17:05:25 1442

原创 程序员面试金典2.6-2.8

程序员面试金典2.6-2.8Java

2022-07-09 18:45:51 75

原创 程序员面试金典2.1-2.5

程序员面试金典2.1-2.5

2022-07-08 16:51:57 110

原创 程序员面试金典1.6 &&1.7 &&1.8&&1.9

程序员面试金典1.6-1.9.Java

2022-07-07 14:09:52 274

原创 程序员面试金典 1.4 && 1.5

程序员面试金典1.4&&1.5,JAVA

2022-07-06 21:47:20 90

原创 程序员面试金典1.2,1.3

程序员面试金典1.2 && 1.3

2022-07-05 20:48:17 1768

空空如也

空空如也

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

TA关注的人

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