- 博客(288)
- 资源 (4)
- 收藏
- 关注
原创 clion的安装与配置
安装:安装CLion_clion安装和配置_离俗的博客-CSDN博客配置:CLion-MinGW-配置_clion配置mingw_胡安民的博客-CSDN博客
2023-06-03 19:58:51 170
原创 C++秋招知识点总结
先介绍下本人的情况,本人研究生双非院校本科也是普通二本,也无实习无项目非科班出生。刷了将近半年的题和自学了相关知识点,最终拿到海康、大华、同花顺、深信服、CVTE、紫光展锐、华为offer。...
2021-03-29 11:19:33 809
原创 使用层次遍历重建二叉树并遍历
58同城的一道题,蛮有意思的。利用层次遍历后的数组,进行二叉树的重建。数值-1代表NULL。解题思路:那么我们依然使用队列,进行层次遍历,进行重建,这边有的问题是当示例为array[] = { 1, 2, 3, 4, -1, 5, 6, 7, 8, -1, -1, 9, 10 , -1, -1 }时,那么需要注意去除NULL,因为NULL节点下面两个节点必然为NULL。参考代码:#include <iostream>#include <vector>#i..
2020-10-12 10:13:17 659
原创 剑指 Offer 57 - II. 和为s的连续正数序列
剑指 Offer 57 - II. 和为s的连续正数序列难度:简单输入一个正整数target,输出所有和为target的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5...
2020-09-22 10:19:23 186
原创 剑指 Offer 59 - II. 队列的最大值
剑指 Offer 59 - II. 队列的最大值难度:中等请定义一个队列并实现函数max_value得到队列里的最大值,要求函数max_value、push_back和pop_front的均摊时间复杂度都是O(1)。若队列为空,pop_front和max_value需要返回 -1示例 1:输入: ["MaxQueue","push_back","push_back","max_value","pop_front","max_value"][[],[1],[2],[]...
2020-09-07 17:19:36 183
原创 C++的继承与虚继承以及如何调用父类同名函数或成员变量
基础知识: 理论看多了,发现不大会写代码,今天来做个总结,并把代码好好梳理一下。1.类继承及调用父类同名函数或成员变量 所谓类继承就是子类继承了父类的方法和属性(当然有三种继承权限)#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;class A{public: voi...
2020-08-29 10:49:47 2630
原创 手写智能指针(类)
基础知识:智能指针的设计与实现:1.智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。2.每次创建类的新对象时,初始化指针并将引用计数置为1;3/当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;4.对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数(如果引用计数为减至0,则删除对象),并增加右操作数所指对象的引用计数;5.调用析构函数时,构造函数减少引用计数(如果引用计数减至0,则删除基础对象)。6.所有的智能指
2020-08-18 20:32:54 1637
原创 leetcode之技巧类总结(C++)
下面是力扣1-150中的技巧类题:博客链接:6.Z字形变换:https://blog.csdn.net/L_smartworld/article/details/1065260317.整数反转:https://blog.csdn.net/L_smartworld/article/details/1065280828.字符串转换整数 (atoi):https://blog.csdn.net/L_smartworld/article/details/10654155214.最长公共前缀:h.
2020-08-18 10:53:04 318
原创 leetcode之递归、贪心、图论、分治总结(C++)
基础知识: 递归:这里的递归主要是DFS,就是以相同的操作,去操作每一个元素。 贪心:贪心算法主要是将所求的结果最大化或者最小化。 图论:https://blog.csdn.net/L_smartworld/article/details/107504915 分治:分治就是将问题分成一块一块,然后进行解决。典型分治算法利用就是快排和归并排序。以下是力扣1-150中的题目:博客链接:递归:...
2020-08-18 10:42:38 255
原创 leetcode之双指针总结(C++)
基础知识: 双指针一般是快慢指针向后移动,或者左右指针向中间移动。双指针:双指针法的判定条件都是while(left<right)下面是力扣1-150中双指针的题:博客链接:9.回文数:https://blog.csdn.net/L_smartworld/article/details/10654406011.盛最多水的容器:https://blog.csdn.net/L_smartworld/article/details/10654975415...
2020-08-18 10:15:42 260
原创 leetcode之数据结构(哈希表,栈,队列,堆)总结(C++)
基础知识:栈:FILO,先进后出https://blog.csdn.net/L_smartworld/article/details/105862717队列:FIFO,先进先出https://blog.csdn.net/L_smartworld/article/details/105841702哈希表:主要用于统计和查询https://blog.csdn.net/L_smartworld/article/details/105296110 1.自建数组作为哈希表...
2020-08-14 15:47:14 387
原创 leetcode之二分法查找总结(C++)
基础知识: 二分法查找是用在有序数组中。注意事项:哇,这个真的很关键,栽了好几次。当你条件设为while (left <= right)时,当你用mid = (right + left) / 2时,(right + left)可能会溢出。另一个当你条件设为while (left < right)时,当left == right时,才返回mid,那么将找不到mid。所以在不考虑left + right溢出的情况下,还是while (left <= right)和mid = (...
2020-08-14 13:41:24 318
原创 构造函数、析构函数、拷贝构造函数(浅拷贝和深拷贝)、移动构造函数、赋值函数的区别
基础知识: 突然发现看了这么久的C++知识点,突然一写发现连拷贝构造函数和赋值函数都写不来了。重新看了书,梳理了语法规范和注意事项,现在整理一下。构造函数: 构造函数主要是进行成员变量的初始化,有成员列表初始化和构造函数体内的赋值初始化。写法如下://构造函数名和类名相同,可以有多个class example{public: example(int x, int* y):a(x),b(y){}//成员列表初始化 //example(int x, i...
2020-08-13 19:51:24 442
原创 leetcode之动态规划(DP)总结(C++)
基础知识: dp问题归根结底是寻找规律,总结出在各种不同情况下的数学表达式。是一种自下向上的设计,先解决子问题,然后将所有子问题的解决方式联合起来,最终解决问题。一般的思维步骤如下: 1.判断是否为DP问题。两个条件:1.最优子结构;2.重叠子问题。解释下两个条件的含义,最优子结构指的是在计算f(n)的时候,f(n-1)子结构已经达到的题目要求的最优状态。重叠子问题是指在解决f(n)的时候,需要用到f(n-1)的结果。 2.写出状态转移方程。这个步骤是DP问...
2020-08-10 09:57:21 429
原创 leetcode之回溯法刷题总结(C++)
基础知识:总结第一波:https://blog.csdn.net/L_smartworld/article/details/106429270总结第二波:https://blog.csdn.net/L_smartworld/article/details/107124243下面是力扣1-150题中的回溯题目:博客索引:17.电话号码的字母组合:https://blog.csdn.net/L_smartworld/article/details/106602102...
2020-08-08 21:07:36 310
原创 leetcode之链表刷题总结(C++)
基础知识: 链表的基础知识主要涉及以下几方面,双指针及多指针的使用,建立临时头结点,使用数据结构对链表进行存储,时候在进行操作。博客链接:2.两数相加:https://blog.csdn.net/L_smartworld/article/details/10649507519.删除链表的倒数第N个节点:https://blog.csdn.net/L_smartworld/article/details/10660314521.合并两个有序链表:https:/...
2020-08-07 14:09:44 448
原创 leetcode之二叉树刷题总结(C++)
基础知识: 所有的题都是建立在二叉树的前序遍历,中序遍历,后序遍历(它们的递归版与非递归版),及层次遍历。搜索二叉树及平衡二叉树。搜索二叉树是指按照中序遍历,它是从小到大排序的(所以考搜索二叉树基本考中序遍历)。平衡二叉树是指根节点的左右子树总结点相差不能超过1。参考代码:(上面的遍历方式标准版)#include <iostream>#include <vector>#include <string>#include <stack...
2020-08-04 16:54:50 665
原创 LeetCode-----第150题-----逆波兰表达式求值
逆波兰表达式求值难度:中等根据逆波兰表示法,求表达式的值。有效的运算符包括+,-,*,/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: 该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例2:输入: ["4...
2020-08-04 09:22:52 219
原创 LeetCode-----第148题-----排序链表
排序链表难度:中等在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5题目分析: 题目的要求和苛刻,时间复杂度为O(nlogn),那么在我们熟悉的排序中只有快排和归并排序,再者要求空间复杂度为...
2020-08-03 14:51:30 210
原创 LeetCode-----第147题-----对链表进行插入排序
对链表进行插入排序难度:中等对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。题目分析: ...
2020-08-03 14:17:24 230
原创 LeetCode-----第146题-----LRU缓存机制
LRU缓存机制难度:中等运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据get和 写入数据put。获取数据get(key)- 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据put(key, value)- 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空...
2020-08-03 14:12:15 270
原创 LeetCode-----第145题-----二叉树的后序遍历
二叉树的后序遍历难度:困难给定一个二叉树,返回它的后序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶:递归算法很简单,你可以通过迭代算法完成吗?题目分析: 后序遍历非递归版,必须掌握基础知识。后序遍历是左右根,所以根会遍历两次,我们不能直接输出,这样的话根会重复输出两次。我们申明一个节点作为标志,相当于一个last_pMove,记录移动节点上一个节点,每次输出的时候...
2020-08-03 13:43:56 165
原创 LeetCode-----第144题-----二叉树的前序遍历
二叉树的前序遍历难度:中等给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶:递归算法很简单,你可以通过迭代算法完成吗?题目分析: 前序遍历非递归版,必须掌握基础知识。利用栈数据结构,先走到最左边(边走边入栈,走之前进行输出),然后出栈往右边走。参考代码:/** * Definition for a binary tr...
2020-08-03 13:36:36 159
原创 LeetCode-----第143题-----重排链表
重排链表难度:中等给定一个单链表L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.题目分析:...
2020-08-03 13:31:35 216
原创 LeetCode-----第142题-----环形链表 II
环形链表 II难度:中等给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是-1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连接到第二个节点。示例2...
2020-08-03 13:21:11 179
原创 LeetCode-----第141题-----环形链表
环形链表难度:简单给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是-1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos = 0输出:true解释:链表中有一个环,其尾部连接到第一个节点。示例 3...
2020-08-03 13:13:33 187
原创 LeetCode-----第139题-----单词拆分
单词拆分难度:中等给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "apple...
2020-08-03 10:51:51 359
原创 LeetCode-----第138题-----复制带随机指针的链表
复制带随机指针的链表难度:中等给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。我们用一个由n个节点组成的链表来表示输入/输出中的链表。每个节点用一个[val, random_index]表示:val:一个表示Node.val的整数。 random_index:随机指针指向的节点索引(范围从0到n-1);如果不指向任何节点,则为null。示例 1:输入:head = [[7,...
2020-08-03 09:31:04 191
原创 LeetCode-----第137题-----只出现一次的数字 II
只出现一次的数字 II难度:中等给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例2:输入: [0,1,0,1,0,1,99]输出: 99题目分析: 显然这道题直接使用上一题的思路是行不通的。我们这里接着考虑位运算,经过分析我们可以知道,将所有数的位加起来,那么显然出现...
2020-08-02 21:56:58 210
原创 LeetCode-----第136题-----只出现一次的数字
只出现一次的数字难度:简单给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4题目分析: 这里需要很巧妙的使用位运算,这里使用异或运算,两个相等的数。异或之后为0,所以只需要遍历一遍将所有的数异或即可参考代码:class ...
2020-08-02 21:48:00 202
原创 LeetCode-----第134题-----加油站
加油站难度:中等在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第i个加油站开往第i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输入数组中的元素均为非负数。示例1:输入: gas = [1,2,3,4,5]c...
2020-08-02 21:42:32 206
原创 LeetCode-----第133题-----克隆图
克隆图难度:中等给你无向连通图中一个节点的引用,请你返回该图的深拷贝(克隆)。图中的每个节点都包含它的值val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使...
2020-08-02 20:21:43 238
原创 LeetCode-----第131题-----分割回文串
分割回文串难度:中等给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例:输入:"aab"输出:[ ["aa","b"], ["a","a","b"]]题目分析: 显然使用回溯算法,将所有分割的可能都尝试一遍,并且判断字符串是否为回文字符串进行剪枝。 结束条件:s为空 all station:不需要全局变量index,因为每次传入递归的是子串,每次在子串上进行操作,所以不...
2020-08-02 19:30:31 230
原创 LeetCode-----第130题-----被围绕的区域
被围绕的区域难度:中等给定一个二维的矩阵,包含'X'和'O'(字母 O)。找到所有被'X'围绕的区域,并将这些区域里所有的'O'用'X'填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的'O'都不会被填充为'X'。 任何不在边界上,或不与边界上的'O'相连的'O'最...
2020-07-30 21:42:48 254
原创 LeetCode-----第129题-----求根到叶子节点数字之和
求根到叶子节点数字之和难度:中等给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径1->2->3代表数字123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 代表数字 12.从根到叶子节点路径 1->3 代表数字 13....
2020-07-30 21:01:50 210
原创 LeetCode-----第128题-----最长连续序列
最长连续序列难度:困难给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为O(n)。示例:输入:[100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。题目分析: 第一眼看到题目可能觉得会使用DP,因为是乱序的,所以用DP很难解。这里考虑使用set,将元素作为键存入set中,有两个作用:一个是去重;二个是方便查询。先将所有元素遍历一遍放入set中,在遍历,寻找每个序列的第一个元...
2020-07-30 20:29:56 584
原创 LeetCode-----第127题-----单词接龙
单词接龙难度:中等给定两个单词(beginWord和endWord)和一个字典,找到从beginWord到endWord的最短转换序列的长度。转换需遵循如下规则:每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。说明:如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设beginWord和endWord是非空的,且二者不相同。示例1:输入:beginWor...
2020-07-28 09:25:28 210
原创 LeetCode-----第125题-----验证回文串
验证回文串难度:简单给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false题目分析: 思路很简单,就是先遍历一遍整个字符串,将大写字母变成小写,将不是字母的字符排除。然后检查是否是回文串即可。参考代码:cl...
2020-07-23 17:00:45 305
原创 LeetCode-----第124题-----二叉树中的最大路径和
二叉树中的最大路径和难度:困难给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / \ 15 7输出: 42题目分析: ...
2020-07-23 16:57:23 263
原创 LeetCode-----第122题-----买卖股票的最佳时机 II
买卖股票的最佳时机 II难度:简单给定一个数组,它的第i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 ...
2020-07-23 16:43:09 156
卡尔曼滤波模型下载地址.txt
2019-06-23
智能车C车程序下载地址.txt
2019-06-23
ICRA2019论文下载网址.txt
2019-06-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人