- 博客(9)
- 收藏
- 关注
原创 力扣128. 最长连续序列
摘要:本文提出了一种使用哈希集合(Set)来查找未排序数组中连续数字序列的方法。通过将数组存入集合去重后,遍历每个元素时先检查是否存在前驱数(x-1),若无则开始向后查找连续数,维护最大连续数长度(max)。该方法避免了排序的O(nlogn)时间,优化为O(n)时间复杂度,同时通过提前终止条件(max*2>集合大小)进一步优化性能。最终返回最长连续数字序列的长度。
2026-02-04 10:32:47
40
原创 力扣题解49. 字母异位词分组
摘要:本文讨论了力扣hot100中分组异位词问题的两种解法。第一种解法通过统计字母出现次数生成哈希键,但效率较低。更推荐第二种基于排序的解法:将字符串排序后作为哈希键,使用HashMap存储相同异位词分组。提供了带if判断和无if两种实现版本,后者使用getOrDefault方法更简洁高效。两种排序解法的时间复杂度均为O(nklogk),其中n是字符串数量,k是字符串最大长度。
2026-02-03 16:28:39
375
原创 寒假复习Java语法与力扣解题
本文介绍了力扣"两数之和"问题的两种解法。第一种是暴力查找法,通过双重循环遍历数组查找符合条件的数对,时间复杂度为O(n²)。第二种更高效的解法是使用哈希表,只需一次遍历数组,利用哈希表快速查询目标值与当前值的差值是否存在,时间复杂度优化至O(n)。文章对比了两种解法的思路差异,并提供了相应的Java代码实现,适合需要复习Java语法或学习算法解题思路的读者参考。
2026-02-03 10:35:12
51
原创 跟着浙大翁凯学计算机之表达式(哔哩哔哩2.2.1)
翁凯老师给的我们一个思路,如果我们将小时全转化为分钟如何再进行相减或者先将分钟转化为小时然后再相减,我们知道分钟的相减是整数好得到,所以我们要将小时转化为分钟,这个好写,只需将小时的数字乘60然后再加原本分钟的数字即可。就比如我们得到70分钟,我们知道它是1小时10分钟,但我们如何用程序来表示呢?学习这一期之前我们先了解C语言中的表达式,一个表达式由运算符和算子组成,比如:“count=count+1”中不要以为count+1是表达式,正确的表达式是count=count+1。得到几时,然后进行取余(
2024-09-14 20:36:26
738
原创 跟着浙大翁凯老师学计算机之浮点数(哔哩哔哩2.1.6)
这里翁凯老师还给我们提供了另一个方案:我们前面学过int是类型,这里我们增加了一个新的类型,就是double ,它可以让编程中的12不需要变成12.0。我们发现这个程序是对于整数的,而当我们输入5英尺7英寸是发现7/12为一个分数,在整数的程序中结果也必须是整数(但我们改变了后发现还是报错,电脑提示我们将printf中的%d变为%f,我们这就得知了%f(值得注意的是这里的scanf 后的%d变成了%lf这是固定的要求。我们这样输入了数字发现得到的值与自己算的值不一样。是运行有分数的程序的。
2024-09-13 22:43:55
568
原创 跟着浙大翁凯老师学习计算机之常量与变量(哔哩哔哩2.1.5)
我们想要输入值的时候必须输入两个数字才能执行,当我们只输入一个数就回车时,计算机会继续等待你输入第二个数,所以当我们运用scanf输入值时必须根据值的数量输入才能得出想得的答案。我们运用了“const int AMOUNT”,其中我们要知道的是“const”是一个修饰符,它加在“int”前面,用来给变量加上const(不变的)的属性。而在程序“int change = 100”我们赋与了change一个100的意思,它的数量不会改变,我们称其为常量。b站的视频顺序错了,先是1.5再是1.4。
2024-09-11 21:13:01
332
原创 跟着浙大的翁凯老师学习计算机之变量赋值与初始值(哔哩哔哩2.1.3)
price=0相当于我们赋与了price一个0的意思,在计算机中“=”的左右两侧分别有不同的意思,我们在数学中“=”表示两个值是相同的,但计算机中我们是手动把0这个值给了price的。我们要注意的是:如果运用scanf 时,我们要写成如:scanf("%d",&price)这种,不能写成scanf("%d",price)这种,这是使用scanf时的一种规则。上篇我们写了一个程序,中间我们加入了一个新的函数scanf,它表示给一个值进行输入,我们刚开始就学习的printf表示给一个值进行输出的。
2024-09-10 14:01:59
598
原创 跟着浙大翁凯学计算机之变量的定义(哔哩哔哩2.1.2)
其中“ int price = 0”我们定义了一个变量price,它的类型是int(不用太在意,后面会学),初始值为0。上期我得到了如何让计算机输出一个我想让它表示的算式,但是算式过于复杂且不方便,比如我如果想算找零的话就很有局限性。变量定义的一般形式就是:<类型名称><变量名称>比如:int price表示一个名为price类型为int的变量。int price,amount则表式变量price和amount的类型都为int。上面写的代码少了main{}的,但没有太大问题。1.有地方放输入的数字;
2024-09-08 13:42:59
217
原创 跟着浙大的翁凯学计算机之作点计算(哔哩哔哩1.3.3)
这是因为printf会执行逗号前的指令,逗号后的指令为对%d的解释。但如果写printf(12+34=%d,12+34)则输出结果为12+34=46。计算机可以进行四则运算。输出的结果只会是46。
2024-09-07 22:22:08
180
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅