- 博客(16)
- 收藏
- 关注
原创 【Leetcode】141. 环形链表
指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数。围绕操场长跑,跑的快的能拉慢的好几圈,他们会相遇好几次。由此,我们可以得出结论,只要有圈,就能相遇。慢的走一步,快的走两步。输入:head = [3,2,0,-4], pos = 1。输入:head = [1,2], pos = 0。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。输入:head = [1], pos = -1。,判断链表中是否有环。解释:链表中没有环。
2024-12-20 16:06:26
159
原创 【Leetcode】150. 逆波兰表达式求值
tokens[i] 是一个算符(“+”、“-”、“*” 或 “/”),或是在范围 [-200, 200] 内的一个整数。输入:tokens = [“10”,“6”,“9”,“3”,“+”,“-11”,“该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。输入:tokens = [“4”,“13”,“5”,“/”,“+”]输入:tokens = [“2”,“1”,“+”,“3”,“*”]
2024-12-16 18:07:04
417
原创 【Leetcode】3. 无重复字符的最长子串
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。需要思考清楚双指针优化的是哪一部分。每次移动一步好实现,for循环即可。题目如果用经典的双for循环去解,对于。使用双指针进行处理的时候,在出现重复字符的时候移动,
2024-12-16 11:23:24
419
原创 【Leetcode】2. 两数相加
输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]给你两个 非空 的链表,表示两个非负的整数。这个题注意,给出的链表和最后的结果都是逆序,直接向后进位即可。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储一位数字。输入:l1 = [0], l2 = [0]输出:[8,9,9,9,0,0,0,1]输出:[7,0,8]
2024-10-22 17:14:46
265
原创 【Leetcode】36. 有效的数独
最后遍历整个矩阵,按照判断条件每个数据只能出现一次,如果现有的hash表中已经有数据了,则说明重复;紧扣定义,格子数量为9*9,但是实际数据的信息量是1-9这个9个数字,那么使用长度为9的数据结构,就可以将1-9这9个数据完成哈希。是一种将任意长度的数据映射为固定长度的数据的方法。因为题目中要求每一行中1-9只能出现一次,任意一行我们都需要一个长度为9的数组来记录每个数字出现的次数,即需要。行数为row,列数为column,小九宫格个数为board。所以需要长度为9的数组来记录每个数字出现的次数。
2024-10-22 14:55:26
920
原创 【Leetcode】167. 两数之和 II - 输入有序数组
如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numbers.length。以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1 和 index2。因此 index1 = 1, index2 = 2。返回 [1, 2]。因此 index1 = 1, index2 = 2。如果 target = 12,在计算完1+9<12之后,1+8, 1+7…
2024-10-11 17:57:31
361
原创 【Leetcode】122. 买卖股票的最佳时机 II
只用在价格为1的时候买入,价格为6卖出,就是这个区间的最大收入,也就是1+4。解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。
2024-10-10 14:20:53
368
原创 【Leetcode】121. 买卖股票的最佳时机
具体操作就是找到当前遍历过的数组中的最小值,每个prices[i] 只用比较1次或者2次,那么时间复杂度可以直接被优化到O(n)解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。这里面很显然2到10的增长是大于4到10的,那么4和9,10,11的比较就是无意义,因此就可以优化4和之后的值的比较。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。输入:[7,1,5,3,6,4]
2024-10-09 17:38:13
403
转载 值传递、引用传递和指针传递的对比
传值,传地址,传引用的效率区别从函数调用的角度理解三者之间的区别传值:函数参数压栈的是参数的副本。任何的修改是在副本上作用,没有作用在原来的变量上。传指针:压栈的是指针变量的副本。当你对指针解指针操作时,其值是指向原来的那个变量,所以对原来变量操作。传引用:压栈的是引用的副本。由于引用是指向某个变量的,对引用的操作其实就是对他指向的变量的操作。函数调用传值、传地址与引用的选择1. 从功能上按值传递在传递的时候,实参被复制了一份,然后在函数体内使用,函数体内修改参数变量时修改的是实参的
2022-03-02 16:59:16
1251
原创 【贪心】【动态规划】找零
题目描述Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为N(0<N≤1024)N(0<N\leq1024)N(0<N≤1024)的商品,请问最少他会收到多少硬币?输入描述一行,包含一个数N。输出描述一行,包含一个数,表示最少收到的硬币数。示例1输入200输出17说明花200,需要找零824块,找12个64元硬币,3个16元硬币,2个4元硬币即可。题目分析题目中
2022-02-23 17:17:21
715
2
原创 【动态规划】机器人跳跃问题
题目描述机器人正在玩一个古老的基于DOS的游戏。游戏中有N+1座建筑——从0到N编号,从左到右排列。编号为0的建筑高度为0个单位,编号为i的建筑的高度为H(i)个单位。起初, 机器人在编号为0的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第k个建筑,且它现在的能量值是E, 下一步它将跳到第个k+1建筑。它将会得到或者失去正比于与H(k+1)与E之差的能量。如果 H(k+1) > E 那么机器人就失去 H(k+1) – E 的能量值,否则它将得到 E – H(k+1) 的能量值。游戏目标
2022-02-23 15:17:05
771
1
原创 Linux(Ubuntu)安装/查看当前版本/卸载(删除)/更新升级adb
Linux(Ubuntu)安装/查看当前版本/卸载(删除)/更新升级adb安装查看当前版本卸载安装最新版本安装可以通过apt或者apt-get,任选其一直接进行安装:// apt安装apt install adb//apt-get安装apt-get install adb如果需要权限的话,在以上命令之前加sudo即可查看当前版本这个不需要apt了:// adb版本adb version卸载// apt卸载apt remove adb//apt-get卸载apt-get r
2021-07-29 10:45:47
8137
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人