LeetCode
Kevin_cai09
无情的bug maker
展开
-
二叉树和递归
二叉树和递归文章目录二叉树和递归1.二叉树的最大深度2.二叉树的最小深度3.反转二叉树4.相同的树5.完全二叉树的节点个数6.平衡二叉树判断7.路径总和8.路径总和II9.路径总和III10.求根到叶节点数字之和11.二叉搜索树最近公共祖先12.二叉树的最近公共祖先13.二叉搜索树中第k小元素14.删除二叉搜索树中的节点15.将有序数组转为二叉搜索树1.二叉树的最大深度 public...原创 2020-12-31 17:49:08 · 211 阅读 · 0 评论 -
leetcode腾讯精选练习题解
文章目录1.两数相加2.寻找两个有序数组的中位数3.最长回文子串4.整数反转5.字符串转为整数6.回文数7.乘最多水的容器8.最长公共前缀9.三数之和10.最接近三数之和11.有效的括号12.合并两个有序链表13.合并K个有序链表14.删除排序数组中的重复项15.搜索旋转排序数组16.字符串相乘17.最大子序和18.全排列19.旋转链表20.不同的路径21.爬楼梯22.子集23.合并两个有序数组2...原创 2020-12-31 17:40:02 · 266 阅读 · 0 评论 -
简单动态规划
动态规划文章目录动态规划1.[打家劫舍](https://leetcode-cn.com/problems/house-robber/)2.[打家劫舍 II](https://leetcode-cn.com/problems/house-robber-ii/)3.[爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)4.[使用最小花费爬楼...原创 2020-12-31 17:49:24 · 214 阅读 · 0 评论 -
leetcode股票买卖问题
股票买卖问题本人是大三学生,有问题欢迎及时指出呀文章目录股票买卖问题1.[买卖股票的最佳时机](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/)2.[最佳买卖股票时机含冷冻期](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-...原创 2020-12-31 17:51:08 · 1973 阅读 · 0 评论 -
上升或连续最长子序列问题
最长上升子序列我们用dp[i] 表示数组中索引为 i 结尾的子数组的最长上升子序列的长度那么我们要求整体最长子序列就是dp[nums.length - 1]分析子问题dp[nums.length - 1]的子问题就是dp[nums.length - 2],以此类推分析状态转移,怎么由子问题推导得到原问题的最优解题目意思就是要我们求得最长上升子序列的长度,对于子序列跟子数组的...原创 2020-12-31 17:51:36 · 1105 阅读 · 0 评论 -
leetcode字符串专题
字符串专题文章目录字符串专题一,字符串匹配算法暴力匹配BFKMP字符串匹配二,leetcode字符串题解统计词频相关1.赎金信2.字符串中第一个唯一字符3.学生出勤记录字符串反转相关1.反转字符串I2.反转字符串II回文串相关1.验证回文串2.验证回文串II3.最长回文子串4.回文字串一,字符串匹配算法所谓字符串匹配就是给定一个模式串和文本串,判定模式串是否是文本串的一个字串,并返回模式串在...原创 2020-12-31 17:52:00 · 1084 阅读 · 0 评论 -
二分查找专题
二分查找专题文章目录二分查找专题一,简单的二分查找二分查找二分边界查找寻找左侧边界的二分搜索寻找右侧边界的二分搜索二,有序数组中使用二分搜索搜索插入位置在排序数组中查找元素的第一个出现和最后一个出现的位置三,旋转数组搜索旋转排序数组搜索旋转排序数组II寻找旋转排序数组中的最小值寻找旋转排序数组中的最小值II四,其他求平方第一个错误版本一,简单的二分查找二分查找也叫作折半查找,是一种效率较高的...原创 2020-12-31 17:52:09 · 148 阅读 · 0 评论 -
leetcode栈和队列专题
文章目录leetcode栈和队列专题1.栈相关最小栈二叉树遍历二叉树前序遍历二叉树中序遍历二叉树后序遍历逆序栈元素排序栈括号匹配问题验证栈序列2.队列相关设计循环队列3.组合设计栈实现队列队列实现栈leetcode栈和队列专题本人大三,目前在准备明年的春招,有问题欢迎及时指出,希望跟大家一起进步1.栈相关最小栈使用双栈来实现最小栈,其中,一个数据栈保存push的所有数据,一个最小栈...原创 2020-12-31 17:52:21 · 223 阅读 · 0 评论 -
leetcode链表专题
文章目录数据结构复习(链表)前言1.反转链表链表反转I反转前N个节点链表反转II2.环形链表环形链表返回链表中间节点环形链表II3.回文链表回文链表4.相交链表找到两个链表相交的起始节点5.删除节点删除链表中的节点删除链表中的指定节点删除排序链表中的重复元素删除排序链表中的重复元素II删除链表的倒数第N个节点从链表中删除总和为0的连续节点6.链表其他题目链表中的下一个更大的节点两数相加两数相加II...原创 2020-12-31 17:53:06 · 372 阅读 · 0 评论 -
动态规划专题复习(一)计数问题
文章目录动态规划专题复习(一)计数问题一,计数问题1.斐波那契数列暴力递归解记忆化搜索动态规划2.凑零钱暴力递归记忆化搜索动态规划3.爬台阶暴力递归记忆化搜索动态规划4.不同路径一暴力递归记忆化搜索动态规划5.不同路径二动态规划6.不同的二叉搜索树一暴力递归记忆化搜素动态规划动态规划专题复习(一)计数问题最近在复习算法,为明年的春招做准备,欢迎互关呀,共同学习,进步!动态规划是一种算法思...原创 2019-10-04 21:47:06 · 1242 阅读 · 5 评论 -
求第三大的数
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2 示例 3:输入: [2, 2, 3, 1]输出: 1解释: 注意,要求返回第三大的...原创 2019-07-16 21:52:48 · 260 阅读 · 0 评论 -
找出不重复数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4第一种方法:使用异或运算class Solution { public int singleNumb...原创 2019-07-15 23:58:24 · 802 阅读 · 0 评论 -
缺失的数字
给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8package 数组;/** * @Auther: Kevin * @Date: * @ClassName:Nu...原创 2019-07-15 23:08:15 · 474 阅读 · 0 评论 -
有序数组的平方
给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]class Solution { public static int[] sortedSquares(int[] A) ...原创 2019-07-14 15:56:00 · 154 阅读 · 0 评论 -
两数之和2 - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入:numbers = [2, 7...原创 2019-07-13 00:14:44 · 127 阅读 · 0 评论 -
单值二叉树
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例 1:输入:[1,1,1,1,1,null,1]输出:true解答:// Definition for a binary tree node.public class TreeNode { int val; TreeNode...原创 2019-05-18 00:41:18 · 529 阅读 · 0 评论 -
回文串
class Solution { public boolean isPalindrome(int x) { // 将 x 转为StringBuilder()并且反转字符串 String s = new StringBuilder(String.valueOf(x)).reverse().toString(); ...原创 2019-03-14 01:20:39 · 161 阅读 · 0 评论 -
罗马数字
class Solution { public int romanToInt(String s) { int num = 0; for(int i=0;i<s.length();i++) { // 分别判断每个字符对应的数值 switch(s.charAt(i)) { case 'I' : num = num + 1;bre...原创 2019-03-16 02:00:46 · 278 阅读 · 0 评论 -
整数反转
第一种方法class Solution { public int reverse(int x) { //如果传入的数字是0的话,直接反转结果就是0 int result = 0; while(x != 0){ //取模 int a = x % 10; ...原创 2019-03-13 01:26:19 · 107 阅读 · 0 评论 -
有效的括号
题解class Solution { public boolean isValid(String s) { // 使用栈数据结构来解决这道题 Stack<Character> stack = new Stack<>(); // 将字符串转为字符数组,依次进栈 char[] charArray = s...原创 2019-03-18 01:51:16 · 292 阅读 · 0 评论 -
移除元素
结果:class Solution { public int removeElement(int[] nums, int val) { int j = 0; for(int i = 0;i<nums.length;i++){ if(nums[i] != val){ nums...原创 2019-03-26 00:51:25 · 149 阅读 · 0 评论 -
删除排序数组中的重复项
我们可以使用两个指针去完成这一道题目首先我们定义了一个 i 指针和一个 j 指针,都指向数组第2个元素之后我们用 j 指针指向的元素为当前元素 nums[j] ,让 i 指针指向当前元素的前一个元素 nums[i-1]比较这两个元素如果这两个元素相等,则向后移动 j 指针 i 指针不动如果当前指向的这两个元素不等,则将当前 j 指针指向的元素的值赋给 i 指向元素的下一个元素...原创 2019-03-24 00:50:27 · 116 阅读 · 0 评论 -
实现strStr()
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba...原创 2019-03-27 15:20:52 · 453 阅读 · 0 评论 -
搜索插入位置
class Solution { public int searchInsert(int[] nums, int target) { //数组长度 int length = nums.length; // 如果比最小的元素小,返回0 int min = nums[0]; if(target < min...原创 2019-03-29 02:49:49 · 257 阅读 · 0 评论 -
加一
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。有三种情况9...原创 2019-04-08 14:33:07 · 118 阅读 · 0 评论 -
相同的树
leetcode100题:相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。求解: // Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode ...原创 2019-05-04 02:34:16 · 145 阅读 · 0 评论 -
二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。该题目的主要目的就是考察我们对二叉树的广度优先遍历和深度优先遍历我本人用的是深度优先遍历的方法,递归遍历,因为代码贼短 //Definition for a binary tree node. public class TreeNode { ...原创 2019-05-05 00:46:24 · 562 阅读 · 0 评论 -
对称二叉树
在这里我们可以确定几种是对称二叉树的情况只有根节点,左右子树为空树左右子树不为空,需满足,节点值相同,左子树对应右子树采用递归去解 // Definition for a binary tree node. public class TreeNode { int val; TreeNode left; TreeNode right; ...原创 2019-05-06 01:37:26 · 197 阅读 · 0 评论 -
两数之和
思路:只需要找出数组中值等于 target-nums[i] 就解决了第一种解决方法: 也是我自己的写的 时间负责度是O(N)class Solution { public int[] twoSum(int[] nums, int target) { for(int i = 0; i < nums.length;i++){ for(int...原创 2019-03-01 01:16:39 · 163 阅读 · 0 评论