自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SIFT代码运行与遇到的问题

我使用的是 ubuntu 系统,并且之前装过 opencv 库,之前已经能运行 ORB-SLAM2 和 3。这次没有再安装代码相关的库,如果显示其他问题请参考其他教程。2.64位系统要执行32bit的文件,需要安装库,但是使用原博主的 lib32ncurses5会报安装失败。(还是3.2那个库,我写到这才发现,装的时候并没有发现。之前装过就不用管了。我使用的是ubuntu系统,相当于在linux下运行。之前马的一堆链接都不存在了,只好使用创始人的代码。点击页面中的超链接(如下图),即可下载代码压缩包。

2025-02-21 14:53:51 944

原创 Leetcode 11. 盛最多水的容器

给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。主要还是利用了短板理论:短板决定了盛水量,每次都移动短板,如果长度一样的话移哪个都行。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入:[1,8,6,2,5,4,8,3,7]输入:height = [1,1]

2024-07-24 10:09:20 682

原创 Leetcode 17. 电话号码的字母组合

输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。输入:digits = “23”输出:[“a”,“b”,“c”]输入:digits = “2”输入:digits = “”看了下 腐烂的橘子 的题解。,感觉还挺麻烦,之后研究下。

2024-07-24 09:57:46 552

原创 Leetcode 2824. 统计和小于目标的下标对数目

开始长度为 n 的整数数组 nums 和一个整数 target ,请你返回满足 0 <= i < j < n 且 nums[i] + nums[j] < target 的下标对 (i, j) 的数目。(0, 1) ,0 < 1 且 nums[0] + nums[1] = -4 < target。(0, 3) ,0 < 3 且 nums[0] + nums[3] = -8 < target。(0, 4) ,0 < 4 且 nums[0] + nums[4] = 0 < target。

2024-07-23 13:42:53 1128

原创 Leetcode 128. 最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。解释:最长数字连续序列是 [1, 2, 3, 4]。输入:nums = [0,3,7,2,5,8,4,6,0,1]请你设计并实现时间复杂度为 O(n) 的算法解决此问题。输入:nums = [100,4,200,1,3,2],没太看懂,晚上看看视频,先记录一下。看了下 灵茶天师府 的题解。

2024-07-22 17:46:03 430

原创 Leetcode 49. 字母异位词分组

输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”](Python/Java/C++/Go/JS/Rust),感觉想法差不多,但是写的要比我的简洁。输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]是由重新排列源单词的所有字母得到的一个新单词。可以按任意顺序返回结果列表。输入: strs = [“a”]给你一个字符串数组,请你将。看了下 灵茶山艾府 的题解。输出: [[“a”]]输出: [[“”]]

2024-07-22 16:59:50 583

原创 Leetcode 151. 反转字符串中的单词

输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的。顺序颠倒且 单词 之间用单个空格连接的结果字符串。解释:反转后的字符串中不能存在前导空格和尾随空格。输入:s = “a good example”输入:s = “the sky is blue”

2024-07-22 15:59:46 527

原创 Leetcode 6. Z 字形变换

之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。输入:s = “PAYPALISHIRING”, numRows = 3。输入:s = “PAYPALISHIRING”, numRows = 4。输入:s = “A”, numRows = 1。输出:“PAHNAPLSIIGYIR”输出:“PINALSIGYAHRPI”,想法差不多但是比我的这个简洁。

2024-07-22 15:47:01 831

原创 Leetcode 66. 加一

先将最后一位的数字 +1,使指针指向它。(1)如果前移之后指向 0 之前了,说明列表应该从 “999” 变为 “1000” 了,即需要在列表最前端加一个数字 1;1.最开始的想法是将所有数字转成字符串,字符串转成数字类型之后加一,然后再转成列表类型。(2)如果前移之后之后没有指向 0 之前,那就正常将数字 +1 就可以了。数组所表示的非负整数,在该数的基础上加一。输入:digits = [4,3,2,1]输入:digits = [1,2,3]输出:[4,3,2,2]输出:[1,2,4]

2024-07-22 10:28:03 639

原创 Leetcode 9. 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。因此它不是一个回文数。hello_newlife 这哥们的题解真的牛。转成字符串然后while循环。输入:x = -121。输入:x = 121。

2024-07-19 16:35:04 467

原创 Leetcode 202. 快乐数

使用 while 循环是肯定的了,while 循环的条件是 n > 4。原本想的是 n > 3,因为 1、2、3的平方都小于10,不会再继续了。后来发现这么想的一点也不对,凑巧把案例全都过去了。实际上,1 一直算下去都得 1;2、3、4一直循环下去相当于 2 的结果,得到的是 False。编写一个算法来判断一个数 n 是不是快乐数。看了 permanet 的题解。,感觉这才是正经解法。

2024-07-19 16:10:25 518

原创 Leetcode 242. 有效的字母异位词

循环遍历 t,如果对应的字符在 dict 中,且次数大于 0 ,就将次数减 1;如果字符不在 dict 中,返回 False。1.最开始的想法是先求出 s 和 t 的长度,如果不相等就直接返回 False。将 t 转换成 list ,循环遍历 s ,当循环到的字符在 list 中时,将该字符从 list 中删掉;这个想法能通过,就是有点慢。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。

2024-07-19 15:22:15 361

原创 Leetcode 290. 单词规律

指完全匹配,例如, pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。输入: pattern = “abba”, s = “dog cat cat dog”输入:pattern = “abba”, s = “dog cat cat fish”输入: pattern = “aaaa”, s = “dog cat cat dog”给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。类似做法,只不过需要在前面加上个长度的判断。

2024-07-19 14:24:48 432

原创 Leetcode 205. 同构字符串

设置一个 dict ,遍历字符串,如果 s 对应的字符在 dict 中,判断对应的 t 的值是否与 dict 中的 value 值相等,如果不相等的话直接就返回 False。1.最开始想的是将每个字符的出现次数都放在 defaultdict 中,如果这两个字符串所得的次数列表相等,那就说明这俩可以转换。没过的那个测试用例为:s = “bbbaaaba”, t = “aaabbbba”。想了想又加个判断条件:如果 s 对应的字符没在 dict 中,但是 t 对应的字符在 dict 中,返回 False。

2024-07-19 13:58:33 812

原创 Leetcode 383. 赎金信

后来想想之前的做法不能用,那只能利用 defaultdict 来计数,将两个字符串中的字符进行计数。之后再循环遍历生成的 dict,看看 ransomNote 对应的字符数量是否小于 magazine 对应的字符数量,小于的话就返回 False。给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。输入:ransomNote = “aa”, magazine = “aab”否则返回 false。,还能这么想,真的牛。

2024-07-18 17:28:54 621

原创 Leetcode 392. 判断子序列

遍历 t ,当 t 对应的字符和 s对应的指针字符相同时,指针后移。如果指针的长度和 s 长度相同时,即指向了 s 的后一位,则说明 s 为 t 的子序列,返回 True。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。1.求出 s 的长度,如果 s 的长度大于 t 的长度,返回 False。如果 s 的长度等于 0,返回 True。3.如果 t 遍历结束后,指针的长度还和 s 长度不相等,则说明 s 不是 t 的子序列,返回 False。

2024-07-18 16:50:00 785

原创 Leetcode 125. 验证回文串

2.最开始想的是,直接 while 循环遍历字符串,如果两个指针对应的字符不是字符也不是数字的,就后移或者前移。如果是大写就给它转换成小写,但是字符串中不能修改单个字符,就使用了list转换一下。如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。给你一个字符串 s,如果它是 回文串 ,返回 true;否则,返回 false。后来发现可以直接将字符串转成小写的,在生成list的时候就给转换了。解释:在移除非字母数字字符之后,s 是一个空字符串 “”。

2024-07-18 16:28:09 985

原创 Leetcode 28. 找出字符串中第一个匹配项的下标

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。3.因为考虑到 haystack 中包含 needle时,first - 1 = last。4.如果 while 循环都结束了还没有返回值,说明 needle 不在 haystack 中,返回 -1。解释:“leeto” 没有在 “leetcode” 中出现,所以返回 -1。

2024-07-18 15:11:28 487

原创 Leetcode 14. 最长公共前缀

如果其他字符串以firstStr[0:j]为开头,就将firstStr[0:j]赋值给tmpStr,并标记flag为true。如果 j 等于 strs[i] 的长度,或者 strs[i][j]不等于strs[i][0],说明这一列的字母缺失或者不全一样,那么最长公共前缀的长度等于 j,返回 strs[0] 的长为 j 的前缀。4.如果没有中途返回,说明所有字符串都有一个等于 strs[0] 的前缀,那么最长公共前缀就是 strs[0]。输入:strs = [“dog”,“racecar”,“car”]

2024-07-18 14:05:09 596

原创 Leetcode 13. 罗马数字转整数

通常情况下,罗马数字中小的数字在大的数字的右边。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。然后从左到右遍历每个字符,如果 s[i] < s[i+1],就将结果减去 s[i] 代表的数字;只有在遇到特殊情况时,两个字符中左边的字符小于右边的字符,且等于右边的字符代表的数减左边字符代表的数。解释: M = 1000, CM = 900, XC = 90, IV = 4.罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。输入: s = “IV”

2024-07-17 15:40:34 706 1

原创 Leetcode 238. 除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。大致就是将数组长度为5的数组,写成5*5的矩阵。以主对角线分界,先计算下三角的各行乘积,再计算上三角的。数组 nums之中任意元素的全部前缀元素和后缀的乘积都在。我的想法直接在题目上就被否了,不能暴力输出也不能用除法。输入: nums = [-1,1,0,-3,3]输入: nums = [1,2,3,4]输出: [24,12,8,6]输出: [0,0,9,0,0]

2024-07-17 14:34:39 401

原创 Leetcode 122. 买卖股票的最佳时机 II

解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。输入:prices = [7,1,5,3,6,4]最大总利润为 4。

2024-07-17 10:26:26 302

原创 Leetcode 121. 买卖股票的最佳时机

如果第i天卖出股票,则最大利润为:该天的股价-前面天数中最小的股价。与已知的最大利润比较,如果大于则更新当前最大利润的值。解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。3)之后判断当前元素后的值是否比当前元素的值大,并且两者的差要比之前求的的最大利润大。2)两层循环,第一层就是正常的遍历数组,第二层就是遍历第一层循环的当前元素后的值。1)设置最小的价格为无穷大,最大利润为0(即设置初始值)。输入:[7,1,5,3,6,4]

2024-07-17 09:51:21 307

原创 Leetcode 80. 删除有序数组中的重复项 II

解释:函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。不需要考虑数组中超出新长度后面的元素。解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。输入:nums = [0,0,1,1,1,1,2,3,3]输出:7, nums = [0,0,1,1,2,3,3]输入:nums = [1,1,1,2,2,3]

2024-07-17 09:11:44 766

原创 Leetcode 104. 二叉树的最大深度

3.整棵树的深度最大深度 = max(左子树的最大深度, 右子树的最大深度) + 1。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。输入:root = [3,9,20,null,null,15,7]给定一个二叉树 root ,返回其最大深度。输入:root = [1,null,2]1.先确定边界条件:节点为空,返回0;2.遍历左子树,遍历右子树。

2024-04-16 16:28:58 385 1

原创 做题中忘记的一些 python 小知识(2)

【代码】做题中忘记的一些 python 小知识(2)

2024-01-13 10:37:41 458

原创 做题中忘记的一些 python 小知识(1)

istitle() 方法可以检测一个字符串中所有英文单词的首字母是否为大写字母并且单词的其他字母为小写,语法为 str.istitle()。str 是要判断的字符串,它返回的是一个布尔类型的值 True 和 False。islower() 方法的作用和 isupper() 正好相反,它是判断一个字符串内的所有单词是否都由小写字母组成,使用方法和返回结果于 isupper() 相同。否则将返回一个新的字符串,将原字符串中每个需要进行小写转换的字符都转换成等价的小写字符,且字符长度与原字符长度相同。

2024-01-09 14:30:28 1027 2

原创 Leetcode 2379. 得到 K 个黑块的最少涂色次数

Leetcode 2379. 得到 K 个黑块的最少涂色次数

2023-03-09 21:57:23 592

原创 Leetcode 2315. 统计星号

Leetcode 2315. 统计星号

2023-01-29 10:33:30 457

原创 Leetcode 2299. 强密码检验器 II

Leetcode 2299. 强密码检验器 II

2023-01-19 17:00:06 1643

原创 Leetcode 2293. 极大极小游戏

Leetcode 2293. 极大极小游戏

2023-01-15 10:46:25 590

原创 Leetcode 2283. 判断一个数的数字计数是否等于数位的值

Leetcode 2283. 判断一个数的数字计数是否等于数位的值

2023-01-11 19:55:01 522

原创 Leetcode 1806. 还原排列的最少操作步数

Leetcode 1806. 还原排列的最少操作步数

2023-01-10 22:23:39 192

原创 Leetcode 2185. 统计包含给定前缀的字符串

Leetcode 2185. 统计包含给定前缀的字符串

2023-01-10 21:39:14 500

原创 Leetcode 2180. 统计各位数字之和为偶数的整数个数

Leetcode 2180. 统计各位数字之和为偶数的整数个数

2023-01-06 19:05:08 676

原创 Leetcode 2042. 检查句子中的数字是否递增

Leetcode 2042. 检查句子中的数字是否递增

2023-01-03 20:08:00 524

原创 Leetcode 2351. 第一个出现两次的字母

Leetcode 2351. 第一个出现两次的字母

2023-01-01 19:04:27 497

原创 Leetcode 2037. 使每位学生都有座位的最少移动次数

Leetcode 2037. 使每位学生都有座位的最少移动次数

2022-12-31 21:44:17 802

原创 Leetcode 2032. 至少在两个数组中出现的值

Leetcode 2032. 至少在两个数组中出现的值

2022-12-29 20:56:12 360

原创 Leetcode 2027. 转换字符串的最少操作次数

Leetcode 2027. 转换字符串的最少操作次数

2022-12-27 21:22:01 561

空空如也

空空如也

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

TA关注的人

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