LeetCode&&other
文章平均质量分 53
刷题题集
渝北最后的单纯
让我康康你的字节范~
展开
-
LeetCode题集 每日签到计划
LeetCode 2024.考试的最大困扰度LeetCode693 交替位二进制数LeetCode1606. 找到处理最多请求的服务器LeetCode 打家劫舍题型 解析LeetCode188 题解LeetCode 股票买卖题型 详解LeetCode728.自除数LeetCode954. 二倍数对数组LeetCode112. 路径总和LeetCode113. 路径总和 IILeetCode693 交替位二进制数LeetCode744. 寻找比目标字母大的最小字母LeetCode154原创 2022-03-30 21:36:48 · 116 阅读 · 0 评论 -
剑指Offer刷题计划
剑指 Offer 09. 用两个栈实现队列剑指 Offer 06. 从尾到头打印链表剑指 Offer 30. 包含min函数的栈剑指 Offer 35. 复杂链表的复制剑指 Offer 74. 合并区间原创 2022-03-29 18:20:33 · 554 阅读 · 0 评论 -
LeetCode154. 寻找旋转排序数组中的最小值 II
154. 寻找旋转排序数组中的最小值 II此题与 该题类似:剑指 Offer 11. 旋转数组的最小数字区别在于这个数组旋转多次 ,但任然可以与最右侧值相比较,判断条件相同,不需要在意做半段或者右半段class Solution { public int findMin(int[] nums) { return binarySearch(nums,0,nums.length-1); } public int binarySearch(int[] a , int原创 2022-04-04 22:37:34 · 128 阅读 · 0 评论 -
ACwing1027 方格取数
ACwing1027 方格取数**状态为f[k] [i1] [i2] : k为第几步,i1为第一次走的 行数 , i2 为第二次走的 行数。 **可以不用再开两维用来表示【j1】【j2】直接用k-i1 , k-i2用来表示j1 , j2.考虑第一次走的下一步是否与第二次走的下一步是否相同,相同则只加一次w【i1】【j1】不同则分别加上w【i1】【j1】,w【i2】【j2】状态转移方程:f[k−1][i1−1][i2−1]+s:第一步,第二步都往右走f[k-1][i1-1][i2原创 2022-04-01 21:36:01 · 109 阅读 · 0 评论 -
ACwing 1018 最低通行费
ACwing 1018 最低通行费该题思路与上题思路相似**状态转移方程: **w[i] [j]为权值f[i][j]=Math.min(f[i−1][j],f[i][j−1])+w[i][j];f[i][j] = Math.min(f[i-1][j] , f[i][j-1])+w[i][j];f[i][j]=Math.min(f[i−1][j],f[i][j−1])+w[i][j];import java.util.*;public class Main{ static int N原创 2022-04-01 21:35:18 · 107 阅读 · 0 评论 -
ACwing 1015 摘花生
ACwing 1015 摘花生第(i , j) 个点 的最大值由 前(i-1 ,j) 和 (i,j-1) 转移而来w[i] [j] 为矩阵中存储的权值状态转移方程:f[i][j]=Math.max(f[i][j],Math.max(f[i−1][j],f[i][j−1])+w[i][j]);f[i][j] = Math.max(f[i][j] ,Math.max( f[i-1][j] , f[i][j-1])+w[i][j]);f[i][j]=Math.max(f[i][j],Math.max原创 2022-04-01 21:34:38 · 105 阅读 · 0 评论 -
剑指 Offer 53 - I. 在排序数组中查找数字 I
剑指 Offer 53 - I. 在排序数组中查找数字 I思路:直接二分查找,再往左往右查找class Solution { public int search(int[] arr, int target) { int l = 0 , r = arr.length , mid,ans = 0; while(l<r){ mid = arr[(l + r ) / 2 ]; if(mid > target)原创 2022-04-01 21:20:47 · 120 阅读 · 0 评论 -
ACwing 1015 摘花生
ACwing 1015 摘花生第(i , j) 个点 的最大值由 前(i-1 ,j) 和 (i,j-1) 转移而来w[i] [j] 为矩阵中存储的权值状态转移方程:f[i][j]=Math.max(f[i][j],Math.max(f[i−1][j],f[i][j−1])+w[i][j]);f[i][j] = Math.max(f[i][j] ,Math.max( f[i-1][j] , f[i][j-1])+w[i][j]);f[i][j]=Math.max(f[i][j],Math.max原创 2022-03-30 22:16:58 · 68 阅读 · 0 评论 -
DAY-1 LeetCode5269 从栈中取出 K 个硬币的最大面值和
leetcode题解,动态规划原创 2022-03-27 20:52:27 · 465 阅读 · 1 评论 -
贪心算法 入门题集
贪心算法入门题集笔记,里面都是较为经典的题目原创 2022-03-26 21:22:47 · 1335 阅读 · 0 评论 -
滑动窗口(单调队列)
思路:使用单调队列进行记录当前窗口的最大值或最小值 , q[tt]记录队列尾的元素 , q[hh] 记录队列头的元素当记录最小值时:1) 当新加入元素小于que[tt]时 , tt-- 直到找到小于新加入元素的值 或者 队列全部为空2) 当新加入元素大于等于que[tt]时 ,tt++ 记录新加入元素的值 ,同时hh++,队列的最后一个元素出队。当记录最大值时:过程与最小值相似ps: BufferedReader 比 scanner快很多 输入数据大于10^6 时多使用bufferedread.原创 2022-03-26 20:58:34 · 444 阅读 · 0 评论 -
字符串Hash
思路:1)将字符串转化为p(经验值为131 || 13331 )进制的数 再模Q (一般取值为2^63)2)将字符串拆分为前缀子串进行hash 计算eg: 字符串为“ABCDE” , array : h[] 为字符串的前缀字串数组"A": h[1] = Ascii(A) % Q; // (A)"AB" h[2] = (Ascii(A)*p + Ascii(B))%Q; // (A*p + B)"ABC" h[3] = (Ascii(A)*p^2 + Ascii(B) * p +原创 2022-03-26 20:26:57 · 436 阅读 · 0 评论 -
LeetCode 打家劫舍题型 解析
打家劫舍题型:I.分析: 当前第i个房屋的状态分为打劫或者不打劫,打劫与不打劫的状态从上一个房屋第i-1个状态转移而来。1) 打劫上一个房屋 当前房屋则是 上一个房屋打劫的最大值 == 第i-1个房屋的最大值2) 不打劫上一个房屋 当前房屋则是 上一个房屋的不打劫的最大值+当前房屋的值 == 第i-2个房屋的最大值+nums[i]由此状态转移方程可以推出:f[i]=max(f[i−1],f[i−2]+nums[i])f[i] = max(f[i-1],f[i-2]+nums[i原创 2022-03-21 13:36:07 · 1131 阅读 · 0 评论 -
Trie树 ACwing835
Trie 树 :统计字符串出现次数###Trie树的建立与查询:结合上图进行理解建树过程:相当于p是指向第 p 个 元素 。idx 用于记录是第几个点最初 idx = 0if(!son[p][CharIndex]):son[p][charIndex]=++idxif(!son[p][CharIndex]) : son[p][charIndex] = ++idxif(!son[p][CharIndex]):son[p][charIndex]=++idx如 先建立"abcd " 时原创 2022-03-19 15:19:46 · 197 阅读 · 0 评论 -
Hamilton
Java哈密顿图 与 半哈密顿图的 查找原创 2022-01-14 00:54:08 · 210 阅读 · 0 评论 -
dp入门题 笔记
动态规划入门题解部分图或题解参照ACwing和LeetCode原创 2022-03-15 21:39:29 · 478 阅读 · 0 评论