![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
NoNameMing
坚持。
展开
-
LeetCode 找不同
题目描述给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例:输入:s = "abcd"t = "abcde"输出:e解释:'e' 是那个被添加的字母。问题分析思路一:对两个数组中各个字符出现的次数进行对比,出现次数不同的那个就是多的那个。思路二:异或法。举...原创 2019-07-26 19:21:18 · 218 阅读 · 0 评论 -
LeetCode 206 反转链表 Java 递归
题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL问题分析例如,1 -> 2 -> 3 -> 4 -> 5 -> NULL,改成 NULL <- 1 <- 2 <- 3 <- 4 <- 5;...转载 2019-06-23 14:09:00 · 116 阅读 · 0 评论 -
LeetCode 204 计数质数 搞笑解法--面向测试编程
问题描述统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。问题分析我参考了一个究极无敌的o(1)解法:面向测试编程。即把测试用例直接加入 if 中。开心就好,这个题解没有实质性的作用。代码class Solution { public int countPrimes(int n...原创 2019-06-22 21:47:39 · 200 阅读 · 0 评论 -
LeetCode 203 移除链表元素 递归方法
题目描述删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5问题分析如果当前结点元素值等于要删除的定值 val,就返回当前结点的下一个结点。当前结点值不等于要删除结点的值,就返回当前结点,每个结点就这样处理;整体的处理方式就是递归。...原创 2019-06-22 21:43:05 · 319 阅读 · 0 评论 -
LeetCode 205 同构三角形 C++ 用字符位置解决
题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/isomorphic-strings给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:...转载 2019-06-22 21:36:54 · 198 阅读 · 0 评论 -
LeetCode 136 只出现一次的数字 自己的暴力方法 + 奇妙异或法
题目描述来源:https://leetcode-cn.com/problems/single-number/给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4问题...原创 2019-06-18 12:08:33 · 237 阅读 · 0 评论 -
LeetCode 231 2的幂
题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/power-of-two给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false问题分析如果这...原创 2019-06-25 12:18:17 · 129 阅读 · 0 评论 -
LeetCode 226 翻转二叉树 递归方法
题目描述来源:https://leetcode-cn.com/problems/invert-binary-tree/翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1问题分析交换一个结点的子结点,递归...原创 2019-06-25 12:05:01 · 95 阅读 · 0 评论 -
LeetCode 125 验证回文串 字符串处理
题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false问题分析回文串:正读反读都一样;这个字符串处理需要的就是字母、数字两种,其它的...原创 2019-06-17 11:27:07 · 86 阅读 · 0 评论 -
LeetCode122 买卖股票的最佳时机 归纳
题目描述题目来源:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入...原创 2019-06-16 18:29:29 · 80 阅读 · 0 评论 -
LeetCode112 路径总和 Java递归解法+简单二叉树题目递归解题方式总结
题目描述给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 ...原创 2019-06-11 11:34:34 · 211 阅读 · 0 评论 -
LeetCode 202 快乐数 4ms C++简单快乐解法
题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/happy-number编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例:输入: 19...原创 2019-06-20 11:53:24 · 177 阅读 · 0 评论 -
LeetCode 字符串中的第一个唯一字符
题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string问题分析处理思路:...原创 2019-07-26 17:17:11 · 120 阅读 · 0 评论 -
LeetCode 242 有效的字母异位词
题目描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种...原创 2019-07-19 17:51:05 · 103 阅读 · 0 评论 -
LeetCode 无重复字符的最长子串
题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。...转载 2019-07-13 17:06:52 · 83 阅读 · 0 评论 -
LeetCode 219 存在重复元素 C++ unordered_map 解法
题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate-ii给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出:...转载 2019-06-24 22:50:15 · 1349 阅读 · 0 评论 -
PAT1060 爱丁顿数
问题描述英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。输入格式:输入第一行给出一个正整数 N (≤105),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。输出格式:在一行中给...原创 2019-06-27 11:23:20 · 158 阅读 · 0 评论 -
LeetCode 两数相加
题目描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0...转载 2019-06-27 10:34:59 · 94 阅读 · 0 评论 -
LeetCode 217存在重复元素 C++ (sort + 对比后一元素)
问题描述来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出...原创 2019-06-23 14:16:50 · 263 阅读 · 0 评论 -
LeetCode 88 合并两个有序数组 Java 从头/尾开始的双指针、C++库函数
题目描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中*,*使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nu...原创 2019-06-04 10:54:40 · 111 阅读 · 0 评论 -
LeetCode 83 删除排序链表中的重复元素 快慢指针 递归
题目描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3分析可以使用快慢指针覆盖重复元素,也可以使用递归的方法覆盖。代码快慢指针class Solution {public: Li...原创 2019-06-03 21:37:28 · 227 阅读 · 0 评论 -
PATB1063 计算谱半径
题目描述在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的 n 个复数空间的特征值 { a1+b1i,⋯,a**n+bni },它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。现在给定一些复数空间的特征值,请你计算并输出这些特征值的谱半径。输入格式:输入第一行给出正整数 N(≤ 10 000)是输入的特征值的个数。随后 N 行,每行给出 1 个特征值的实...原创 2019-06-09 17:31:37 · 205 阅读 · 0 评论 -
LeetCode 27 移除元素 快慢指针 0ms 100%击败??
问题描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...原创 2019-05-24 11:13:14 · 176 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 ...原创 2019-05-23 21:28:59 · 73 阅读 · 0 评论 -
LeetCode 53 最大子序和 动态规划方法
问题描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。分析找数组会遇到两种情况:继续加,越来越大;开始新的数组。翻译做 sum = max(nums[i], nums[i] + sum);re...原创 2019-05-28 09:21:43 · 139 阅读 · 0 评论 -
LeetCode 66 加一 数组处理
题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。...原创 2019-05-30 10:46:31 · 823 阅读 · 0 评论 -
LeetCode 009 回文数 C解法
题目描述回文数CategoryDifficultyLikesDislikesalgorithmsEasy (55.96%)593-TagsCompanies判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左...原创 2019-05-18 10:20:33 · 133 阅读 · 0 评论 -
LeetCode 35 搜索插入位置简单解法 && 二分查找
问题描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0...原创 2019-05-26 19:01:47 · 156 阅读 · 0 评论 -
LeetCode 7 整数反转
LeetCode 007 整数反转问题描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21代码class Solution {public: int reverse(int x) { long resu...转载 2019-05-17 13:05:02 · 63 阅读 · 0 评论 -
LeetCode 21 合并两个有序链表 C++ 解法学习 顺便复(xue)习链表
题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4代码/** * Definition for singly-linked list. * struct ListNode { * int...原创 2019-05-22 11:21:30 · 126 阅读 · 0 评论 -
LeetCode 28 实现 strStr() C++ KMP解法 内置函数解法 原始暴力解法
题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle ...原创 2019-05-25 20:25:58 · 228 阅读 · 0 评论 -
LeetCode有效的括号 C++
问题描述给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4...转载 2019-05-21 11:49:44 · 324 阅读 · 0 评论 -
LeetCode 最长公共前缀 4ms 99.85% C++解法
题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。分析首先,是 string 数组保存所有待测...原创 2019-05-20 12:02:45 · 228 阅读 · 0 评论 -
LeetCode 67 二进制求和 字符串处理 Java实现
题目描述给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"分析这道题目主要有两个点,一是处理位数不对齐的情况,二是进位。我第一次用Java刷LeetCode题目,只能做到读别人...原创 2019-05-31 10:58:02 · 184 阅读 · 0 评论 -
LeetCode 100 相同的树 C++/Java 递归
题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 ...原创 2019-06-05 15:38:40 · 84 阅读 · 0 评论 -
LeetCode 141 快慢指针法
题目描述来源:https://leetcode-cn.com/problems/linked-list-cycle/给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表...转载 2019-06-19 13:36:05 · 170 阅读 · 0 评论 -
LeetCode 121 买卖股票的最佳时机 暴力法
题目来源https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解...原创 2019-06-14 13:40:05 · 143 阅读 · 0 评论 -
PATB1083 是否存在相等的差 hash散列
题目描述给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?输入格式:输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。输出格式:按照“差值 重复...原创 2019-06-14 13:33:01 · 84 阅读 · 0 评论 -
LeetCode 104 二叉树的最大深度
题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。分析DFS策略。DFS沿着树的深度遍历树的节点,尽可能深的搜索树的分支。M...原创 2019-06-08 12:00:27 · 86 阅读 · 0 评论 -
LeetCode 110 平衡二叉树 递归
题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。链接:https://leetcode-cn.com/problems/balanced-binary-tree/分析可以用递归解决,思路就是判断左子树是否平衡、右子树是否平衡、还有左右子树高度差是不是1。分析来源:LeetCode用户 ...原创 2019-06-08 11:43:50 · 145 阅读 · 0 评论