
Leetcode
NoNameMing
坚持。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode 找不同
题目描述 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例: 输入: s = "abcd" t = "abcde" 输出: e 解释: 'e' 是那个被添加的字母。 问题分析 思路一: 对两个数组中各个字符出现的次数进行对比,出现次数不同的那个就是多的那个。 思路二: 异或法。 举...原创 2019-07-26 19:21:18 · 269 阅读 · 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 · 149 阅读 · 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 · 240 阅读 · 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 · 373 阅读 · 0 评论 -
LeetCode 205 同构三角形 C++ 用字符位置解决
题目描述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/isomorphic-strings 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: ...转载 2019-06-22 21:36:54 · 220 阅读 · 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 · 287 阅读 · 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 · 153 阅读 · 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 · 127 阅读 · 0 评论 -
LeetCode 125 验证回文串 字符串处理
题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false 问题分析 回文串:正读反读都一样; 这个字符串处理需要的就是字母、数字两种,其它的...原创 2019-06-17 11:27:07 · 119 阅读 · 0 评论 -
LeetCode122 买卖股票的最佳时机 归纳
题目描述 题目来源:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入...原创 2019-06-16 18:29:29 · 112 阅读 · 0 评论 -
LeetCode112 路径总和 Java递归解法+简单二叉树题目递归解题方式总结
题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 ...原创 2019-06-11 11:34:34 · 278 阅读 · 0 评论 -
LeetCode 202 快乐数 4ms C++简单快乐解法
题目描述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/happy-number 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 示例: 输入: 19...原创 2019-06-20 11:53:24 · 208 阅读 · 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 · 185 阅读 · 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 · 132 阅读 · 0 评论 -
LeetCode 无重复字符的最长子串
题目描述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 ...转载 2019-07-13 17:06:52 · 113 阅读 · 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 · 1448 阅读 · 0 评论 -
PAT1060 爱丁顿数
问题描述 英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。 现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N)。 输入格式: 输入第一行给出一个正整数 N (≤105),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。 输出格式: 在一行中给...原创 2019-06-27 11:23:20 · 227 阅读 · 0 评论 -
LeetCode 两数相加
题目描述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-two-numbers 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0...转载 2019-06-27 10:34:59 · 134 阅读 · 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 · 305 阅读 · 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 = 3 nu...原创 2019-06-04 10:54:40 · 149 阅读 · 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 · 269 阅读 · 0 评论 -
PATB1063 计算谱半径
题目描述 在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的 n 个复数空间的特征值 { a1+b1i,⋯,a**n+bni },它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。 现在给定一些复数空间的特征值,请你计算并输出这些特征值的谱半径。 输入格式: 输入第一行给出正整数 N(≤ 10 000)是输入的特征值的个数。随后 N 行,每行给出 1 个特征值的实...原创 2019-06-09 17:31:37 · 256 阅读 · 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 · 227 阅读 · 0 评论 -
LeetCode 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2: 给定 ...原创 2019-05-23 21:28:59 · 103 阅读 · 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 · 171 阅读 · 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 · 1579 阅读 · 0 评论 -
LeetCode 009 回文数 C解法
题目描述 回文数 Category Difficulty Likes Dislikes algorithms Easy (55.96%) 593 - Tags Companies 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左...原创 2019-05-18 10:20:33 · 172 阅读 · 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 · 211 阅读 · 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 · 82 阅读 · 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 · 159 阅读 · 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 · 298 阅读 · 0 评论 -
LeetCode有效的括号 C++
问题描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4...转载 2019-05-21 11:49:44 · 393 阅读 · 0 评论 -
LeetCode 最长公共前缀 4ms 99.85% C++解法
题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a-z 。 分析 首先,是 string 数组保存所有待测...原创 2019-05-20 12:02:45 · 261 阅读 · 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 · 224 阅读 · 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 · 106 阅读 · 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 · 229 阅读 · 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 · 175 阅读 · 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 · 117 阅读 · 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 · 137 阅读 · 0 评论 -
LeetCode 110 平衡二叉树 递归
题目描述 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 链接:https://leetcode-cn.com/problems/balanced-binary-tree/ 分析 可以用递归解决,思路就是判断左子树是否平衡、右子树是否平衡、还有左右子树高度差是不是1。 分析来源:LeetCode用户 ...原创 2019-06-08 11:43:50 · 185 阅读 · 0 评论