- 博客(18)
- 收藏
- 关注
原创 【LeetCode 算法笔记】164. 破解闯关密码
本质上是给数组进行排序。定义好比较规则后,选择一种排序算法实现即可,这里实现了冒泡排序。输入: password = [0, 3, 30, 34, 5, 9]拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0。输出结果可能非常大,所以你需要返回一个字符串而不是整数。输入: password = [15, 8, 7]请编写一个程序返回这个密码。输出: “03033459”输出: “1578”
2024-10-13 17:24:42
1022
原创 【LeetCode 算法笔记】189. 轮转数组
我们可以先把整个数组翻转一下,这样后半段元素就到了前边,前半段元素就到了后边,只不过元素顺序是反着的。我没有验证特殊值,但普遍情况下这样做是正确的,但 LeetCode 无法通过,给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。输入: nums = [1,2,3,4,5,6,7], k = 3。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]个元素,再保存原数组的前。
2024-10-12 19:23:51
663
原创 【LeetCode 算法笔记】84. 柱状图中最大的矩形
创建栈,存储还无法确定边界的柱子下标。如果右边的柱子高度比栈顶矮,开始从栈顶弹出并计算面积。给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。从头开始,对于每一个元素搜索一遍后面所有的元素,输出面积最大的值。面积 = 宽(几个数字的数量)* 高 (其中最小的数字的值)输入:heights = [2,1,5,6,2,3]求在该柱状图中,能够勾勒出来的矩形的最大面积。解释:最大的矩形为图中红色区域,面积为 10。输入: heights = [2,4]
2024-09-15 00:09:56
554
原创 【LeetCode 算法笔记】739. 每日温度
输入: temperatures = [73,74,75,71,69,72,76,73]天,下一个更高温度出现在几天后。输入: temperatures = [30,40,50,60]对于每一个温度值,都向后进行扫描,直到找到比这个值更大的值。先把 下标存到栈里,如果栈顶元素遇到了更高的温度,持续抛出。最坏情况下,每一天的温度比前一天更低,总共运行。输出: [1,1,4,2,1,1,0,0],表示每天的温度,返回一个数组。输出: [1,1,1,0]输出: [1,1,0]
2024-09-14 15:02:27
1076
原创 【LeetCode 算法笔记】283. 移动零
更加通用的算法思想是 双指针。第一个指针表示左侧指针,第二个指针表示右侧指针,当右侧不是零的时候,跟左侧互换。给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。第一种解法是利用了最后的数字全是为0的特点,是比较 tricky 的做法。请注意 ,必须在不复制数组的情况下原地对数组进行操作。输入: nums = [0,1,0,3,12]进阶:你能尽量减少完成的操作次数吗?输出: [1,3,12,0,0]第二次遍历把后面的 0 补回去。输入: nums = [0]
2024-09-14 13:29:53
842
原创 【LeetCode 算法笔记】155. 最小栈
相当于把 双栈实现 中的双栈合并为单个栈,于是栈里存储最小值和当前值之间的差值。每一次出栈的时候,通过这个插值还原出上一个时刻的最小值。设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。网上有人说他在面试的时候被要求,不额外开辟空间,下面列了我找到的答案。--> 返回 -3.--> 返回 -2.具体来说,再维护一个最小栈,顶部存储当前栈中元素的最小值。int getMin() 获取堆栈中的最小元素。int top() 获取堆栈顶部的元素。操作的性能是一种可行的办法。
2024-09-14 11:19:36
1353
原创 【LeetCode 算法笔记】20. 有效的括号
每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。输入:s = “()[]{}”左括号必须以正确的顺序闭合。输入:s = “([])”,判断字符串是否有效。输入:s = “()”输入:s = “(]”
2024-09-13 23:44:55
447
原创 【LeetCode 算法笔记】394. 字符串解码
等写出基础版本的代码后,再去想一想,如果维护一个栈,应该如何实现。首先,搞清楚运算顺序,假如有嵌套的括号,那一定是从最内层开始运算的,所以外层的数字和字符串放到栈里等待。输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数。给定一个经过编码的字符串,返回它解码后的字符串。维护 两个 栈,一个保存数字,一个保存字符串。输入:s = “2[abc]3[cd]ef”输入:s = “3[a]2[bc]”输入:s = “3[a2[c]]”
2024-09-13 23:34:59
661
原创 【LeetCode 算法笔记】128. 最长连续序列
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。解释:最长数字连续序列是 [1, 2, 3, 4]。输入:nums = [0,3,7,2,5,8,4,6,0,1], 不符合题目条件,但依然可以提交通过。这里我就先贴出代码。输入:nums = [100,4,200,1,3,2]先用集合去重,然后排序数组,从头开始找连续的序列。第二次遍历 从每个起点开始计算子序列的长度。第一次遍历 找出每个子序列的起点。请你设计并实现时间复杂度为。
2024-09-12 00:04:37
610
原创 【LeetCode 算法笔记】49. 字母异位词分组
由于互为字母异位词的两个字符串包含的字母相同,因此两个字符串中的相同字母出现的次数一定是相同的,故可以将每个字母出现的次数使用字符串表示,作为哈希表的键。输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]由于字符串只包含小写字母,因此对于每个字符串,可以使用长度为 26 的数组记录每个字母出现的次数。输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]字母异位词 之间排序后的值是相等的。输出: [[“a”]]
2024-09-10 20:48:33
1157
原创 【LeetCode 算法笔记】1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。因此,我们需要一种更优秀的方法,能够快速寻找数组中是否存在目标元素。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。输入:nums = [2,7,11,15], target = 9。的时间复杂度降低到从 O(N) 降低到 O(1)。你可以按任意顺序返回答案。
2024-09-09 23:29:51
767
1
原创 研究生如何阅读论文?彭明辉教授《研究生手册》笔记
台湾清华大学动机所教授彭明辉教授《研究生手册》中第5~7节详细阐述了期刊论文的阅读方法,下面做一些自己的总结:
2022-01-22 18:12:04
495
原创 Python对象比较:is 与 ==
Python对象比较:is 与 ==当两个变量指向同一个对象时,is表达式的结果为True;当各变量指向的对象含有相同内容时,==表达式的结果为True。a = [1, 2, 3]b = a>>> a[1, 2, 3]>>> b[1, 2, 3]>>> a == b # 内容相同True>>> a is b # 指向同一个对象Truec = list(a)>>> c[1,
2020-11-09 18:20:38
219
原创 CUDA安装失败,解决办法
问题描述打开CUDA安装包,所有选项选择完毕后开始安装,最后报错安装失败,什么都没装上,如图所示:解决办法打开NVIDA控制面板,查看自己显卡对应的CUDA版本下载安装就解决了,查看方法如下:打开NVIDA控制面板,点击左下角的“系统信息”点击“组件”,查看NVCUDA.DLL对应的CUDAdriver版本,去官方网下载对应版本安装...
2020-01-18 15:07:46
10325
1
原创 CUDA安装前检测环境报错:文件缺失
原因:是杀毒软件把nvrtc64_100_0.dll文件当木马处理了解决办法:打开杀毒软件,进入隔离区恢复文件就好了,然后重新安装不会报同样的错误
2020-01-18 14:34:19
1425
原创 Java中char类型转换为int类型后值不相等
问题描述今天把 char ‘1’ 转为 int 时得到的是"49", 查资料以后发现直接转化得到是‘1’的Ascii. 如下面:char c = '1';int n = (int)c;System.out.println(c + ": " + n);输出结果:1: 49那么如何把char '1' 正确地转化成 int '1'呢?解决方法最简单的方法就是利用ch...
2018-07-21 16:19:18
1514
原创 RMI实例(实现分布式议程共享服务)
使用Java RMI创建一个分布式议程共享服务。不同的用户可以使用这个共享议程服务执行查询、添加和删除会议的操作。服务器支持会议的登记和清除等功能;
2017-12-24 21:37:18
2212
1
原创 HTML中"bgcolor"与"background-color"的区别
bgcolor只是标签属性,而backgroud更多作为css的样式属性。 它们俩大多数情况下效果完全相同。但在<p>标签下效果不同。<p>不支持bgcolor属性,只能用style标签添加CSS样式。作为table的属性而言:<table style="background-color:red"><tr><td>Hello World !</td></tr></table>和<table
2017-07-11 17:59:50
17803
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人