自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

icy的代码小屋

摸鱼中……

  • 博客(36)
  • 收藏
  • 关注

原创 【icyle】组会论文分享编写:从Markdown到Latex

Latex写作技巧

2022-06-18 17:49:37 410 3

原创 【Linux & Deep learning】MMDetection炼丹大法

mmdetection炼丹大法

2022-03-29 10:19:22 3721

原创 【Linux & Deep learning】使用zsh进行终端美化

zsh终端美化

2022-03-23 19:54:27 3429 1

原创 【Linux & Deep learning】从0开始安装MMDetection

深度解析如何安装CUDA、cudnn、mmdetection

2022-03-22 16:43:33 2582

原创 【icyle】Leetcode-cn:28. 实现 strStr()

题目解答1:KMP算法(未AC,难度有点高)思路度娘找!代码时间复杂度和空间复杂度解答2:Sunday算法思路请参考Test 的解答:Sunday算法,详细准确。(当很多解答比较晦涩难懂的情况下,我才会用自己的大白话说一遍)代码此处参考了上面解答中用户KeviN的C++实现。感谢。/* * @lc app=leetcode.cn id=28 lang=cpp * * [28] 实现 strStr() */// @lc code=start#include <stri

2021-03-21 10:56:50 82

原创 【icyle】Leetcode-cn:27. 移除元素

题目解答:双指针思路思路同26. 删除有序数组中的重复项。只是 跳过重复元素 变成了 删除指定元素 ,也就是说变成了 跳过指定元素,原理是相同的。代码/* * @lc app=leetcode.cn id=27 lang=cpp * * [27] 移除元素 */// @lc code=start#include <vector>using namespace std;class Solution{public: int removeElement(vect

2021-03-21 10:45:05 108

原创 【icyle】Leetcode-cn:26. 删除有序数组中的重复项

题目解答:双指针思路由于题目已经说明,不需要考虑数组中超出新长度后面的元素。所以,定义指针j用于遍历,指针i用于保存不重复的数即可。比较简单的做法。代码/* * @lc app=leetcode.cn id=26 lang=cpp * * [26] 删除排序数组中的重复项 */// @lc code=start#include <vector>using namespace std;class Solution{public: int removeDup

2021-03-21 10:41:30 100

原创 【icyle】Leetcode-cn:25. K 个一组翻转链表

题目解答:分解成一组k个的小问题思路就像解答所说,定义一个负责解决一组k个的小问题的函数,这个函数在以后能够直接解决反转链表这一题目。简单描述一下反转链表如何实现:这一条子链表的最后一个元素的next(也就是下一条子链表的的第一个元素)定义为prev结点;这一条子链表的第一个元素定义为ptr结点;这一条子链表的第二个元素定义为nextptr结点;ptr下一个接上prev,prev结点变为ptr,ptr结点变为nextptr。(相当于对这一条子链表来说,这三个指针全部循环向前走了一位,同时还

2021-03-21 10:36:47 95

原创 【icyle】Leetcode-cn:24. 两两交换链表中的节点

题目解答1:递归思路分类讨论:如果链表中至少有两个节点:原始链表的头节点变成新的链表的第二个结点;原始链表的第二个节点变成新的链表的头结点;本组第一个结点应该接上下一组的第二个结点,所以用递归找到下一组;链表中没有节点,或者链表中只有一个节点:结束递归。代码/* * @lc app=leetcode.cn id=24 lang=cpp * * [24] 两两交换链表中的节点 */// @lc code=start/** * Definition for singly-

2021-03-21 10:16:25 107

原创 【icyle】Leetcode-cn:23. 合并K个升序链表

题目解答1:两个两个合并思路最简单直接的方法,不解释了。代码/* * @lc app=leetcode.cn id=23 lang=cpp * * [23] 合并K个升序链表 */// @lc code=start/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nu

2021-03-19 20:18:43 138

原创 【icyle】Leetcode-cn:22. 括号生成

题目解答:发现题目的“规则”思路不多说了,相信大家都玩过井字棋,规则就是横、竖、斜连成一条线则赢得胜利。这道题目的规则就是:某一时刻的组合中,右括号数目不可能比左括号多。递归实现dfs回溯,解决。代码/* * @lc app=leetcode.cn id=22 lang=cpp * * [22] 括号生成 */// @lc code=start#include <vector>#include <string>using namespace std;

2021-03-19 15:58:03 74

原创 【icyle】Leetcode-cn:21. 合并两个有序链表

题目解答1:迭代思路(为方便,在以后的题目中空值的头指针一律称为dummy结点)首先定义一个dummy结点,再定义一个prev指针指向指向dummy。我们要做的事情就是:把“l1和l2中值较小的结点”接在prev的后面完成一次操作后,将prev指向先前得到的“l1和l2中值较小的结点”重复1-2,直至两条链表全部读取完毕,返回dummy->next。代码/* * @lc app=leetcode.cn id=21 lang=cpp * * [21] 合并两个有序链表 *

2021-03-19 15:31:15 103

原创 【icyle】Leetcode-cn:20. 有效的括号

题目注:此处有多种思路,这里只选择了一种容易理解且简单的方法。解答:发现题目的“潜规则”思路408专业课中明确讲到,括号匹配的一个优秀方法就是栈匹配。具体规则请看代码部分。需要的头文件从此题开始,不再列出头文件内容,具体请看代码部分。(其实是觉得这部分好没用啊,写来干嘛,又不是看不懂代码)代码/* * @lc app=leetcode.cn id=20 lang=cpp * * [20] 有效的括号 */// @lc code=start#include <strin

2021-03-19 13:00:23 80

原创 【icyle】Leetcode-cn:19. 删除链表的倒数第 N 个结点

题目解答1:找位置思路先找位置再删除,最简单的方法。需要的头文件vector、algorithm代码/* * @lc app=leetcode.cn id=19 lang=cpp * * [19] 删除链表的倒数第 N 个结点 */// @lc code=start/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *

2021-03-19 12:49:36 78

原创 【icyle】Leetcode-cn:18. 四数之和

题目解答:排序+双指针思路同15.三数之和,只是选定一个数加双指针变成了选定两个数加双指针,也就是多了一个for循环。另外注意剪枝操作即可。需要的头文件vector、algorithm代码/* * @lc app=leetcode.cn id=18 lang=cpp * * [18] 四数之和 */// @lc code=start#include <vector>#include <algorithm>using namespace std;cl

2021-03-18 22:03:21 97

原创 【icyle】Leetcode-cn:17. 电话号码的字母组合

题目解答:排序+双指针思路map存储key-value组合、dfs回溯解决。需要的头文件string、vector、algorithm、unordered_map代码/* * @lc app=leetcode.cn id=17 lang=cpp * * [17] 电话号码的字母组合 */// @lc code=start#include <string>#include <vector>#include <algorithm>#inclu

2021-03-10 14:46:07 146

原创 【icyle】Leetcode-cn:16. 最接近的三数之和

题目解答:排序+双指针思路(大白话)参考15. 三数之和的思路,只需要考虑以下两个点:因为是找最接近的,所以一般情况下需要把全部情况列出来,除非直接找到了target数,可以直接返回target。需要定义一个新的变量作为差值=sum-target,一旦存在更小的差值,就把sum和其对应的差值存储下来,最后返回对应差值最小的sum即可。需要的头文件vector、algorithm代码/* * @lc app=leetcode.cn id=16 lang=cpp * * [16] 最

2021-03-10 14:11:15 80

原创 【icyle】Leetcode-cn:15. 三数之和

题目解答:排序+双指针思路(大白话)假设选定的三个数为a、b、c,那么对于这一个数组[-2,-1,0,1,2](默认已经排好序),有-2 -1 0 1 2↑ ↑ ↑a b c-2 + (-1) + 2 = -1 ,小了,把b调大一点吧。(因为c已经是最大了,而a是固定的)-2 -1 0 1 2↑ ↑ ↑a b c-2 + 0 + 2 = 0,这回对了。注:如果结果又大了,把c调小一点即可。当a遍历完之后,自然就结束了。这里还可以加上

2021-03-09 10:42:26 80

原创 【icyle】Leetcode-cn:14. 最长公共前缀

题目解答:依次递减法思路代码内已详细描述。需要的头文件string代码/* * @lc app=leetcode.cn id=13 lang=cpp * * [13] 罗马数字转整数 */// @lc code=start#include <string>using namespace std;class Solution{private: int getValue(char ch) //寻找对应字符的函数,注意这里没有类似4和9的描述 {

2021-03-09 10:12:04 111

原创 【icyle】Leetcode-cn:13. 罗马数字转整数

题目由于存在论坛某些帖子已发题目导致无法判定原创,从该题开始一律不再对题目进行描述,转而使用的方法是附上原题目链接。解答:依次递减法思路代码内已详细描述。需要的头文件string代码/* * @lc app=leetcode.cn id=13 lang=cpp * * [13] 罗马数字转整数 */// @lc code=start#include <string>using namespace std;class Solution{private:

2021-03-02 16:44:44 98

原创 【icyle】Leetcode-cn:12.整数转罗马数字

题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:I 可以放在 V

2021-03-02 16:35:45 93

原创 【icyle】Leetcode-cn:11. 盛最多水的容器

题目给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组[1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2:输入:height = [1,1]

2021-02-05 19:58:27 109

原创 【icyle】Leetcode-cn:10. 正则表达式匹配

题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。- ‘.’ 匹配任意单个字符- ‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。示例 1:输入:s = “aa” p = “a”输出:false解释:“a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa” p = “a*”输出:true解释:因为 ‘*’ 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素

2021-02-05 12:53:50 92

原创 【icyle】Leetcode-cn:9. 回文数

题目给你一个整数 x ,如果 x 是一个回文整数,返回 ture ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。进阶:你能不将整数转为字符串来解决这个问题吗?示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:

2021-02-05 12:33:07 99

原创 【icyle】Leetcode-cn:8. 字符串转换整数 (atoi)

题目请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查第一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“123

2021-02-05 11:37:22 118

原创 【icyle】Leetcode-cn:7. 整数反转

题目给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [-231,231-1],就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0解答1:long定义直接防止溢出思路%10是取最后一位,/10是抹去最后一位,理解

2021-02-01 15:23:35 105

原创 【icyle】C++编程:vscode实用插件和必要设置

前言牢记调出命令面板:Ctrl + Shift + P当然也可以自行改动。实用插件(顺序:热门倒序+功能分类)Ⅰ 语言类

2021-01-28 11:38:11 382 1

原创 【icyle】Leetcode-cn:6. Z 字形变换

题目将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 PAYPALISHIRING 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入:s =

2021-01-25 17:14:13 120 4

原创 【icyle】Leetcode-cn:5. 最长回文子串

注:此题为Hard,难度较高,目前参考Leetcode官方解答思路,地址:官方解答题目给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4

2021-01-24 22:13:16 88 1

原创 【icyle】Leetcode-cn:4. 寻找两个正序数组的中位数

注:此题为Hard,难度较高,目前参考Leetcode官方解答思路,地址:官方解答题目给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4

2021-01-22 20:14:17 114

原创 【icyle】表格化学习C++

前言通过刷Leetcode的方式自行总结常用语法的基础知识,同时对比学习相似和区别之处。内容汇总不说那么多乱七八糟的东西,直接上货。内容类型

2021-01-18 16:18:20 63

原创 关联容器:set和map及其无序容器

定义关联容器:set和map及其无序容器 set map unordered_set(c++11) unordered_map 原理 RB树 Hashtable 元素的值 唯一 key唯一,value不唯一 同set 同map 下标操作 不支持 支持 自动排序 强制 按key强制排序 查找时间复杂度 log(n) 平均为O(1),最坏情况为O(n) 插入时间复杂度 l..

2021-01-18 16:16:47 152

原创 【icyle】Leetcode-cn:3.无重复字符的最长子串

题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。***示例 1:***、输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“

2021-01-17 00:50:06 123

原创 【icyle】Leetcode-cn:2.两数相加

题目给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,

2021-01-16 10:01:14 109

原创 【icyle】Leetcode-cn:1.两数之和

题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target = 6输出:[1

2021-01-14 21:03:34 81

原创 【icyle】编程小白的Leetcode之旅

学习背景某985自动化系,有过一些编程基础。能够使用C++,Python,Matlab完成课程设计项目。做过:学生管理系统(老常规了),控制台双人小游戏,图像处理。学习目的找到工作(总感觉考研没戏了)。目标是中上游互联网企业,后端开发。还得复习一下sql。学习方法Leetcode按顺序,每天AC一道题,因为还需要补充C++基础知识以及毕业设计。Leetcode代码及心得汇总这里将会用超链接的形式记录每道题的代码及心得。题目链接1.两数之和2.两数相加

2021-01-14 20:45:40 172 2

空空如也

空空如也

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

TA关注的人

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