- 博客(89)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 LeetCode历程 By UnflyBrenda
目录一、链表(1)链表逆序、翻转链表(easy&&medium)(2)链表求交点(easy)(3)链表求环(medium)(4)链表划分(medium)(5)复杂链表的复制(深度拷贝)(hard)(6)排序链表的合并(easy&&hard)二、栈,队列,堆(1)使用队列实现栈&&使用栈实现队列(easy&&...
2018-11-30 12:52:28
289
原创 leetcode 100热题
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言标题easy问题合集1.有效括号问题前言提示:leetcode简单题目100题中的easy部分:希望能够坚持下去提示:以下是本篇文章正文内容标题easy问题合集1.有效括号问题https://leetcode-cn.com/problems/valid-parentheses/java方法1class Solution: def isValid(self, s): while.
2022-03-31 20:33:17
410
原创 面试问题记录
csdnhttps://www.cnblogs.com/yinrw/p/10795210.html 问题比较全面问卷星https://www.wjx.cn/xz/109293287.aspx不能重现的bug怎么办 测试人员和研发人员对bug的认知不一样 怎么处理 研发认为不是bug linux ls是干嘛的 查找文件中的字符串 用什么指令 grep 查看最新日志 一般用什么指令 tail -f sql 看个排序吧 一个表 根据创建时间排序 查询表...
2021-04-07 10:46:08
150
原创 6小时学习记录——实例
1.删除重复value我的写法:# 删除重复valuenumbers = [2, 2, 4, 6, 3, 4, 6, 1]nums = []numbers.sort()print(numbers)for value in numbers: if nums.count(value) == 0: nums.append(value) else: continueprint(nums)案例写法:# 删除重复valuenumbers
2020-10-06 22:16:28
97
原创 python6小时完全入门 b站视频学习记录
6小时完全入门# ********非运行#主语言java 业务需要使用python 理解一下python的用法0.输入输出print(i * '*') 将'*'输出i次1.格式转换first = 'John'last = 'Smith'message = first + ' [' + last +'] ' + 'is a good coder' 太麻烦,需要拼接msg = f'{first} [{last}] is a good coder'print(msg)2.数组2.1复
2020-10-06 22:05:53
171
原创 win10自带的office365怎么找到安装目录+mathtype
遇到问题,因为我要安装mathtype,但是一直显示错误代码53 显示运行时未找到mathpage.wll一般都在office文件夹中,但是365死活在files和data中都找不到,运行目录中右键也没有属性选项,哭泣后来看了一个评论,觉得非常有用,记录一下跟着大佬的操作,找到了目录很好,我去看看找到了,按照网上的方法,把wll文件粘进去装了之后打开w...
2019-11-10 11:51:25
7036
2
原创 windows平台下使用cmake构建静态lib库以及使用静态lib库>est项目
有些时候我们需要将部分代码编译成单独的一个库,然后在另一个项目中去使用这个库大部分是linux环境下的指令,但是也差不是很多记录一下构建的经过目录1.使用cmake构建及使用lib库构建lib库使用lib库2.被测项目编译成库文件,结合gtest框架在测试项目中调用函数并输出1.使用cmake构建及使用lib库构建lib库最终目录展示下面给...
2019-07-26 17:14:04
16656
原创 Cmakelists配置多级目录的gtest项目(项目代码和测试代码分离)
cmake一些语法定义之前的博客主要写了怎么配置gtest项目,但是一般项目代码和测试代码并不在一起,所以尝试将代码分离主要分成三个部分,下面给出demo的分级目录--gtest_demo--CMakelists.txt--src--------cacl.h--------cacl.cpp--------string_util.h--------string...
2019-07-24 13:33:16
3401
原创 gtest单元测试配置+vs 2015+OpenCppCoverage输出测试覆盖率 || cmake命令构建项目以及编译以及命令行测试
目录一、仅使用gtest+vs20151.下载和编译gtest2.创建具体的项目3.gtest自带十个例子二、使用gtest+vs2015,并且输出测试覆盖率1.使用vs 2015企业版2.使用OpenCppCoverage +vs 2015(企业版,社区版都可以)三、使用cmake生成项目,构建+gtest进行单元测试+使用命令行执行opencppcovera...
2019-07-18 18:42:32
5309
原创 leetcode 407 收集雨水(java 搜索)
二维数组存储的是每个单元的高度,求最多接多少体积的雨水首先想到的就是找到最低点 注意看后两个图,当水超过3的时候,可以从绿的的点流进内部所以可以想象内部现在的水的高度可以达到3,减去原来的体积,就是水的体积太机智了吧这个就是想象,想象水流进来的感觉,从内部往外面扩展,找不到什么规律要注意的一点就是,四周的点是没...
2019-06-19 15:53:18
522
原创 leetcode 473 火柴棍摆正方形(java 搜索)
就是在N个数里面找出四组数,使得每一组的和都是相等的优化很容易想到,就是先总和除以4取余,不为0说明不能成正方形,因为不能折断然后从大到小排序,每一次判断当前值和平均值的关系大于,就不能拼成正方形,直接false;等于,一条边完成摆放,进行下一条边;小于,记录这个火柴,继续搜,看有没有火柴长度和它加起来能够到达平均值,没有就falseclass Soluti...
2019-06-19 10:49:33
752
原创 LeetCode 126 词语接龙2 (搜索 java)
跟上一题127一样,但是额外要求要输出搜索的路径,而且是 所有的路径所以需要考虑将路径转换为有向图,然后将有向图中的最短路径全部枚举出来graph的话我们通过map<string,list<string>>来记录节点和从节点出发可以到达的其他节点,class Solution { public List<List<String...
2019-06-19 09:03:45
258
原创 leetcode 127 单词接龙(搜索 java)
就是给一个单词词典,给一个开始词汇和结束词汇,在词典中找出开始词汇转变成结束词汇的过程,求转变次数每次只能转变单词的一个字符可能会有多条路径可以到达,搜索问题可以用DFS BFS解决,DFS更适合搜索有多少条路径,BFS更适合搜索最小深度所以这个题最好是用BFS图的深度优先搜索:一个节点从他能够到达的未走过的节点中选择一个遍历,然后继续往后图的宽度优先...
2019-06-19 07:40:35
786
1
原创 Leetcode 200 岛屿数量(搜索 java)
如何设计深度优先搜索(DFS)搜索到位置,进行一个标记,按照上下左右搜索,直到某一个点的深度遍历全都搜索完毕,岛屿数量加1小象学院给的是使用一个辅助数组进行标记,其实用原先的一个数组也是可以的,遍历中心位之后,如果中心位是1,count++将中心位置为非1的数字就好了,我看网上有置为0的,我们为了和水域也分开比较,我们将遍历过的土地置为1.我们如何设计宽度优先...
2019-06-18 11:17:52
905
原创 leetcode 174 地牢游戏(hard java 动态规划)
思路就是dp[i][j]表示为了达到右下角,至少有多少血量能够在行走过程中至少保持一滴血要从右下角开始向上推,因为只有在右下角知道最少还剩一滴血,然后向上推,最小血量javaclass Solution { public int calculateMinimumHP(int[][] dungeon) { if(dungeon.le...
2019-06-05 22:04:42
452
原创 leetcode 64最小路径和(java medium 动态规划)
由于前面已经做过了不少动态规划了,所以这个题很快能够找出状态转移方程dp[i][j]=Min{dp[i-1][j],dp[i][j-1]}+arrays[i][j]class Solution { public int minPathSum(int[][] grid) { if(grid.length==0) return 0;...
2019-06-05 21:27:47
241
原创 leetcode 300 最长上升子序列(java hard 动态规划)
主要思路还是dp[i]表示以i为结尾的最长上升序列的长度,要和dp[i]+1进行比较,j在0-(i-1)的范围class Solution { public int lengthOfLIS(int[] nums) { if(nums.length==0||nums.length==1){ return nums.length...
2019-06-05 21:02:56
890
原创 leetcode 120 三角形(medium java 动态规划)
题上说是从上往下,但是其实从下往上求路径是一样的,而且可以避免边界值问题因为从上到下dp[i][j]=min(dp[i-1][j-1],dp[i-1][j])但是从下到上dp[i][j]=min{dp[i+1][j],dp[i+1][j+1}}因为i+1 j+1是已经求过的,所以网上求是不会溢出的javaclass Solution { public ...
2019-06-05 20:25:15
260
原创 leetcode 322 找零钱(java medium 动态规划 一维dp )
首先先理解思路不能用暴力贪心,之前的找钱是1 2 5 10之类的生活中存在的钱,现在是任意未知货币现在如果是 1 2 5 7 10组合14就会出现问题,贪心依次是10 2 2 1,四张就不对了,应该是7 7 两张然后就是状态转移的公式推导dp[i]依赖条件是什么后面那个+1很好理解,i-1 i-2 等等,表示往前查看前面位置上需要的钞票数,+1就是加上相应的 ...
2019-06-05 12:30:45
686
原创 leetcode 53 最大子段和(easy java 动态规划)
一核心:跟以前的dp不太一样,这个需要换个思路假设dp[i]表示以i为结尾的最长子段的和 它和dp[i-1]的关系就是dp[i]=max(dp[i-1]+nums[i],nums[i])意思就是 包括前面i-1计算出来的子段和, 不包括前面的子段和,也就是只有nums[i]自己一个数class Solution { public int maxSub...
2019-06-05 10:54:53
192
原创 leetcode 198 打家劫舍(java easy 动态规划)
找到规律,推导状态转移方程分析子问题面对第i家房子,如果打劫,那么i-1家就不能进,那么最大财务就是前i-2家累计财富+第i家打劫的财富如果不打劫i家,那么在第i家门口徘徊的时候,身上的最大钱财就是前i-1家非法获得的财富所以就可以得到状态转移方程代码class Solution { public int rob(int[] nums) { ...
2019-06-05 09:58:31
244
原创 leetcode 70 爬楼梯(easy java 动态规划)
一、题目分析爬楼梯的问题先考虑基本情况很快得到f(n)=f(n-1)+f(n-2)第一种情况是最后一次走一层,剩下就是和n-1层有关,第二种情况就是最后一次走两层,剩下就是和n-2层有关不用动态规划也可以,就是记录中间状态,累加代码class Solution { public int climbStairs(int n) { int...
2019-06-05 09:15:17
135
原创 LeetCode 76 最小窗口子串(java)
一、题目分析分析:就是在S中找出包括T的所有字符的最小窗口 ,要求时间复杂度是O(N)所以有了之前滑动窗口的概念,这个题会好理解一点值得注意的是数量足够:就是当前窗口中,begin位置的字符出现至少两次,那么为了达到最小,自然就可以想到要把begin向右移动一位来自下面博主的文字:字符串和哈希表的问题。hashmap来存储t字符串中个字母元素...
2019-05-25 21:33:42
854
原创 LeetCode 重复的DNA序列(java)
一、题目分析分析:方法1:可以枚举,将长度为10的子串存入hashmap中,这样其实这个题就是个easy的题这个方法感觉太复杂了,我不想看了。大致意思就是,编码之后 ,通过位运算转化的问题了二、java实现方法一:public class Solution { public List<String> ...
2019-05-25 21:06:18
384
原创 LeetCoed 无重复字符的最长子串(java)
一、题目分析分析:最长子串,而不是最长子序列。子串是字符串连续的一段,子序列是可以不连续的所以有一种方法叫做滑动窗口法,我记得左程云老师讲过,那个题是计算窗口内最大或者最小值的在本题中,窗口一直向右移动,左边缘也可以向右滑动,右边缘也可以,窗口内的字符是不重复的,每一次加入新的值之后都要记录当前窗口的长度。左右边缘都从begin出发,如果end位置的数已经在窗口中存...
2019-05-25 20:29:03
7241
2
原创 LeetCode 49 同字符词语分组 (java)
一、题目分析和前面的两个题一样,这道题也采用hashmap来做有两种实现的方法,一个是,对数组的每一个字符串元素排序,排序后结果一样的分为一组,也就是说key是排序后的字符串,比如"aet"第二种方法是统计每个字符串中的每个字符出现的个数,分为同一组的字符串每个字符出现的次数是相同的,也就是key应该记录26个字母(小写)每一个字母出现的个数二、java代码第一种方法...
2019-05-25 19:35:21
412
原创 LeetCode 290 词语模式 (java)
一、题目分析其实我最先想的是遍历两个字符串,一个记录单个字符出现的个数,一个记录通过空格分开的每个单词出现的个数然后两个数目一一对应,看是否相等虽然是可行的,但是在网上看到更方便的一种做法,就是单个字符作为hashMap的key值,然后单词作为value值所以,就变成了了判断是否一一对应的关系遍历pattern的字符,如果存在于map中,要判断value值是否equals...
2019-05-15 15:40:52
157
原创 LeetCode 最长回文串 (409 java)
一、题目分析使用字符串中的字符,任意组合二、java实现class Solution { public int longestPalindrome(String s) { if (s == null) return 0; Map<Character, Integer> map = new HashMap<>...
2019-05-15 10:56:38
195
原创 LeetCode 315 逆序对(java)
一、题目分析count[i]表示在nums[i]右侧且比它小的元素个数下面是构造成树的思路yi还有一种方法是归并排序二、代码方法1:搜索二叉树class TreeNode { int val; int size; TreeNode left, right; TreeNode(int val) { ...
2019-05-10 12:00:37
1308
原创 LeetCode 499 二叉树的序列化和反序列化 java
一、题目分析:用一定方式记录二叉树成字符串,然后再将字符串解析成二叉树无所谓遍历顺序,先序、中序、后续都可以,甚至按层遍历也是可以的,只要前后规则一致就是可以的然后我是采用左神的方法,节点之间使用_占位符,空指针用#表示,否则不是很难知道左右子树什么时候终止,左神机智一个小例子比如这个,按照先序遍历序列化结果为:0_1_3_#_#_#_2_#_4_#_#...
2019-05-09 11:25:54
620
原创 LeetCode 33 旋转数组查找
一、题目分析要求:时间复杂度,数组中没有重复元素,nums是升序,但是可能以未知下标旋转,查找target的位置解决:使用二分法,但是要加上条件限制如果不加改变继续使用二分法,就会出现上述问题 ,怎么加上限制条件呢规律:所以分为下面两种情况,一种是target在mid左边,一种是target在mid右边细分为三种情况...
2019-04-13 10:47:49
192
原创 leetcode 34 区间查找
一、题目分析:首先,要求了时间复杂度O(log n),说明暴力禁止我们可以通过二分查找法确定左右区间边界但是不能同时找出左右边界,我们可以先确定左边界,再确定右边界class Solution { public int[] searchRange(int[] nums, int target) { int []result =ne...
2019-04-09 15:31:01
244
原创 LeetCode 35 插入位置
一、题目分析给定一个排序数组和一个目标值,如果能够找到这个值,就返回值的坐标,如果找不到,就返回值的插入位置的坐标值二、代码实现(java)class Solution { public int searchInsert(int[] nums, int target) { if(nums.length==0){ return ...
2019-04-06 22:09:27
107
原创 LeetCode 课程安排 207(java)
一、题目注意;输入条件是邻接表,而不是邻接矩阵。假设没有重复边题目分析:题目是说,课程之间有依赖关系,必须完成一门之前,先完成它的依赖课程。所以,如果有环的话,就不可能完成所有的课程。因此题目就是判断,图中是否有环。(1)可以使用深度优先遍历(DFS)思路是,正在进行该节点的递归深度搜索,如果回到了该节点,就说明有环(2)可以使用宽度优先遍历(BFS...
2019-04-04 15:09:50
577
原创 LeetCode 199 侧面观察二叉树(java)
一、题目题目分析:侧面观察二叉树,将观察到的节点从上到下依次输出-->也就是层次遍历二叉树,输出每一层的最后一个节点二、java代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * ...
2019-03-24 17:09:35
362
原创 LeetCode 114 二叉树转链表
一。题目分析:(1)要求转化为先序遍历顺序,这个很容易想到设置一个链表,然后先序遍历二叉树,把节点和指针记录在链表就好了(2)题目要求in-place,也就是说不允许申请额外空间了,所以不能设置一个新的链表,只能在当前树(左右孩子指针)的结构上做手脚了,而且从图上看最后的二叉树都是只有右子树的。由上图可知,如果右子树不为空,则右子树最后肯定为左子树最后一个靠右的孩子节点的右子...
2019-03-16 15:47:21
497
1
原创 LeetCode 236 最近的公共祖先节点(java)
一、题目分析求两个节点的最近公共祖先节点:(根据LCA定义,一个节点可以是他自己的后代)1、一定在根结点到这两个节点的路径中。2、一定是离根结点最远的公共节点那么代码设计1、要从根结点找到两个节点的路径并记录保存2、找公共节点,并且是最近的公共节点二、java代码1.最简单直白的方法,调用两次找路径函数,分别保存,然后再遍历,找到离根结点最远的...
2019-03-04 20:32:01
794
原创 leetcode 112&&113 pathsum
一、题目分析:返回是否存在一条根到叶子的路径和到达sum ,有直接返回true,后面的也不用再进行搜索java代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right...
2018-12-26 20:11:43
121
原创 leetcode 315 逆序数(count of smaller numbers after self)——分治
题目: 思路: (1)最先能想到的当然是遍历。这样使用两个循环,第一个循环遍历每一个数,第二个循环遍历这个数后面的所有数,找有几个是比它小的。这种时间复杂度是O(N^2)(2)本题使用了分治的思路,复杂度是O(N*logN)应用合并排序。如果我们对数组进行排序,那么对于某个特定的数据,其后面的逆序数等于在排序过程中需要移动到该数前面的个数。时间复杂度O(nlogn)。...
2018-12-21 18:05:27
1042
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人