自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划-小白入门

首先引入知乎大佬的一篇文章https://zhuanlan.zhihu.com/p/91582909这篇文章非常详细,我就是根据这篇文章开始学习动态规划,配合leetcode刷题,希望大家都能战胜dp。一、青蛙跳台阶https://leetcode-cn.com/problems/climbing-stairs/这是一道动态规划入门题目,关键在于初始值取值的问题,不能忽略第二阶台阶也是初始值,因此也要初始化。class Solution {public: int clim

2020-10-09 16:48:59 220 2

原创 【无标题】

ubuntu服务器

2022-07-13 17:26:56 160 1

原创 剑指offer35 复杂链表的复制

**剑指offer35 复杂链表的复制**这道连题目都没看懂的题,确实有点难度。代码量并不是很大,但是回溯法的思路始终是没有掌握。直到码字的这一刻还是没有理解代码。之后需要重点回看/*// Definition for a Node.class Node { int val; Node next; Node random; public Node(int val) { this.val = val; this.next = nul

2021-12-01 16:53:20 78

原创 实习--剑指offer24反转链表

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-12-01 15:15:07 275

原创 LC49判断二叉树是否相等

2020-10-8这道题一开始我是想利用先序遍历和中序遍历序列可以唯一确定一棵二叉树这个性质来解决问题,后来发现直接通过递归比较两个根的左子树是否相等且两个根的右子树是否相等来判断更为简便。注意当两个根节点都为空时,他们也是相等的。https://www.nowcoder.com/questionTerminal/9a9e74b71f944efab9992925f7f9a65e/** * struct TreeNode { * int val; * struct TreeNode *

2020-10-08 16:26:22 162

原创 LC45二叉树的最大深度

这道题写了有好几遍了,再写还是为了熟悉递归的写法,熟能生巧。思路就是,二叉树的最大深度等于左子树的最大深度和右子树的最大深度之间的最大值加一。所以用递归求解就一目了然了。https://www.nowcoder.co/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solution {public: /** *

2020-10-08 16:08:00 137

原创 LC15-出现一次的数字

2020-10-8一道很简单的题,但题目要求线性复杂度并且要求不使用额外空间。在leetcode上刷过这道题,但是再刷依然是没想到用异或的方法。在这里总结一下异或的特点:两个相同的数异或为0,不相同的数异或为1,0与一个非0的数异或结果是那个数。因为除了所求数字以外,每个数字都出现了两次,所以通过两两异或得到的结果就是所求数字。https://www.nowcoder.com/questionTerminal/0bc646909e474ac5b031ec6836a47768class So

2020-10-08 15:59:01 123

原创 leetcode-279-完全平方数

2020-9-11这道题是经典的动态规划问题-零钱问题的变种,比零钱问题多一步计算完全平方数。采用自底向上动态规划的思想,状态转移方程即从n-平方数时的dp转移到n时的dp。class Solution {public: int numSquares(int n) { vector<int>dp(n+1,n+1); dp[0] = 0; vector<int>pows = get_pow(n); fo

2020-09-11 17:28:16 68

原创 leetcode-2-两数相加

2020-9-5这道两数相加以链表为数据结构,核心考察点在于对于进位的处理,遍历链表即可。有一个取巧的方法是先生成节点让两个链表等长,这样可以避免后续对于链表不同时结束遍历的处理。这道题耗费了两天时间,我发现自己对于链表的掌握还是不够透彻,而且总会选择一些看似投机取巧实则弄巧成拙的方法。https://leetcode-cn.com/problems/add-two-numbers//** * Definition for singly-linked list. * struct List

2020-09-05 18:00:28 62

原创 leetcode-9-回文数

2020-9-3经典题目却一波三折,提交的时候忽略了负数的样例,偷懒用了string和stl,只是逐位把数字加入到字符串中。https://leetcode-cn.com/problems/palindrome-number/class Solution {public: bool isPalindrome(int x) { if(x < 0) return false; string s1 = ""; w

2020-09-03 22:06:40 74

原创 leetcode-剑指offer55-I-二叉树的深度

2020-9-2这道题是经典的求二叉树深度问题,有递归和非递归两种解法。递归的思想就是二叉树的深度等于左右子树深度的最大值加一。非递归的话就类似于广度优先搜索,将每个节点的左右子树加入队列,当一层节点遍历结束后深度加一https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof//** * Definition for a binary tree node. * struct TreeNode { * int val;

2020-09-02 10:14:38 89

原创 leetcode-414-第三大的数

2020-8-21这道题因为题目说是O(n)的时间复杂度,所以没有使用sort和set或者map,如果使用排序或者查找的话时间复杂度都在O(n2)。所以处理方法是遍历元素的时候通过三个变量来存储最大的三个数。这道题测试用例的坑在于有测试用例超过了INT_MIN的取值范围,所以只能改为使用LONG_MIN类型https://leetcode-cn.com/problems/third-maximum-number/class Solution {public: int thirdMax

2020-08-21 09:32:45 68

原创 leetcode-217-存在重复元素

2020-8-17这道题挺容易的。我的解法是建立一个set集合用于查找重复元素,在建立集合的同时查找是否有重复元素,有的话立即return true,等到跳出循环则意味着没有重复元素,return false。https://leetcode-cn.com/problems/contains-duplicate/class Solution {public: bool containsDuplicate(vector<int>& nums) { u

2020-08-17 10:21:46 104

原创 leetcode-88-合并两个有序数组

2020-8-16最开始使用插入并移动数组元素的方法,后来我发现这个题目有投机取巧的方法,可以用很短的代码解决问题。用vector的erase删除nums1中的0元素,再将nums2元素逐个插入到nums1中,最后调用sort进行排序即可解决。https://leetcode-cn.com/problems/merge-sorted-array/class Solution {public: void merge(vector<int>& nums1, int

2020-08-16 09:58:57 73

原创 leetcode-66-加一

2020-8-15debug了半个多小时还是会出现内存堆栈溢出现象,看了看大佬的题解,简直赏心悦目,简洁明了,再看看我写的代码,虽然思路一样,但是真的不堪入目,说是垃圾代码一点都不过分。题目其实不难,就是跑一个for循环,再来一个插入操作。https://leetcode-cn.com/problems/plus-one/class Solution {public: vector<int> plusOne(vector<int>& digits) {

2020-08-15 10:48:50 86

原创 leetcode-35-搜索插入位置

2020-8-14这道题非常简单,一个for循环即可解决,也没有什么难点https://leetcode-cn.com/problems/search-insert-position/class Solution {public: int searchInsert(vector<int>& nums, int target) { int ans; for(int i=0;i<nums.size();i++) {

2020-08-14 14:39:43 80

原创 leetcode-剑指offer59-I 滑动窗口的最大值

2020-8-13这道题我实在没想到什么好方法,就暴力求解了。看了题解才知道stl里面还有双端队列这个数据结构,可是还是没看懂大佬们怎么用,只知道大概是维护了一个最小栈。等过几天更新大佬们的解法。https://leetcode-cn.com/problems/hua-dong-chuang-kou-de-zui-da-zhi-lcof/暴力解法class Solution {public: int get_Max(queue<int> que) {

2020-08-13 16:50:20 227

原创 leetcode-1441-用栈操作构建数组

2020-8-12这道题看似复杂,实则不难。我的解法是通过一个循环,找到1-n中在target中的元素,每当找到以后就加入一个“Push”到返回数组中,没有找到就加“Push”和“Pop”到返回数组中。循环终止条件是遍历到target末尾。https://leetcode-cn.com/problems/build-an-array-with-stack-operations/submissions/class Solution {public: vector<string&g

2020-08-12 11:17:02 149

原创 leetcode-面试题03.02-栈的最小值

2020-8-11这道题的解题思路就是存数的同时存最小值。有两种数据结构的构建思路,一种是建立一个pair<int,int>类型的栈,直接将数值和最小值存入一个栈;另一种是使用双栈,一个数值栈一个最小值栈,在存数值的同时将最小值压栈,出栈时一起出栈,就可以保证辅助栈的栈顶元素始终是栈中所有元素的最小值。https://leetcode-cn.com/problems/min-stack-lcci/class MinStack {public: /** initialize

2020-08-11 12:21:59 92

原创 leetcode-面试题02.07-链表相交

2020-8-8与之前的链表相交题目一样,还是使用双指针,当遍历到一个表的表尾时就指向另一个表的表头,这样可以保证两个指针走过的路程相同,与物理中的相遇问题思路是相同的。https://leetcode-cn.com/problems/intersection-of-two-linked-lists-lcci/submissions/...

2020-08-08 09:45:35 774

原创 leetcode-面试题02.02-返回倒数第k个节点

2020-8-7与剑指offer22一样。快慢指针,让快指针先找到第k个位置,然后两个指针同时开始移动,当快指针到达最后一个节点的next即为NULL时慢指针所指节点就是倒数第k个节点。画图理解更为清晰。https://leetcode-cn.com/problems/kth-node-from-end-of-list-lcci/...

2020-08-07 11:55:48 688

原创 leetcode-面试题02.06-回文链表

2020-8-6我的解法是把链表值存到字符串和栈中,如果出栈数字组成的字符串和原字符串相等,就意味着是回文链表。最优题解是先用快慢指针找到中点,再对后半段链表进行反转链表,最后用双指针对前后两段链表进行逐个比较https://leetcode-cn.com/problems/palindrome-linked-list-lcci/submissions/...

2020-08-06 19:26:29 140

原创 leetcode-面试题02.01-移除重复节点

我的方法是用map记录节点的值,将第一次出现的值的节点用尾插法插入到一个新的链表中另一个方法,用set查重复值,在当前链表上直接进行删除https://leetcode-cn.com/problems/remove-duplicate-node-lcci/...

2020-08-05 12:24:15 109

原创 leetcode-剑指offer-两个链表的第一个公共节点

2020-8-3双指针法在各自的指针到达尾节点时令他指向另一个链表的头节点https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/submissions/

2020-08-04 16:59:58 76

原创 leetcode-剑指offer24-反转链表

2020-8-4新建头节点,对原链表节点使用头插法达到反转的目的https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/submissions/

2020-08-04 12:33:00 78

原创 leetcode-剑指offer22-链表中倒数第k个节点

用快慢指针法做题。先让快指针跑k个节点,再同时递增快慢指针。https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/

2020-08-03 13:04:42 98

原创 python CV小记

np.zeros用法:zeros(shape, dtype=float, order=‘C’)返回:返回来一个给定形状和类型的用0填充的数组;参数:shape:形状 dtype:数据类型,可选参数,默认numpy.float64 dtype类型:t ,位域,如t4代表4位 b,布尔值,true or...

2019-11-10 09:27:44 157

转载 c++ vector容器使用方法

学习C++ -> 向量(vector)一、向量的介绍向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。在使用它时, 需要包含头文件 vector, #include<...

2019-10-16 21:33:19 110

空空如也

空空如也

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

TA关注的人

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