LeetCode
一棵栗子树
一失足 千古恨 龙游浅滩遭虾戏;
君莫悔 待重头 卷土重来未可知。
展开
-
LeetCode 4.寻找两个正序数组的中位数
给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { if (nums1.length > nums2.length) { return findMedianSortedArrays(nums2, nums1);...原创 2021-04-19 20:21:17 · 122 阅读 · 0 评论 -
LeetCode 3.无重复字符的最长子串 解答
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。class Solution { public int lengthOfLongestSubstring(String s) { Set<Character> set = new HashSet<Character>(); int l = 0, r = 0; int maxLength = 0; while(l <= r &&am..原创 2021-04-18 00:31:51 · 81 阅读 · 0 评论 -
LeetCode 2.两数相加 解答
给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head = null, tail = null; int ...原创 2021-04-15 20:39:08 · 240 阅读 · 0 评论 -
LeetCode 1.两数之和 解答
回首上一次leetcode的博客,还是2019年的事情,这一年半以来发生了很多事情从今天开始用Java重新刷leetcode,每天坚持打卡记录,希望能找回初心吧!给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。class Solution { public int[] twoSum(i...原创 2021-04-13 23:15:13 · 98 阅读 · 1 评论 -
LeetCode 289. 生命游戏 解答
根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死...原创 2019-10-30 16:21:01 · 229 阅读 · 0 评论 -
LeetCode 79.单词搜索 解答
给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。回溯类算法,需要明确哪些内容需要保存,已经回溯终止的判断条件,以及剪枝的条件。class Solution {public: bool exist(vector<ve...原创 2019-10-30 09:57:07 · 186 阅读 · 0 评论 -
LeetCode 77. 组合 解答
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。使用深度优先搜索算法,这道题博主写得不好,效率较低,有待改进。class Solution {public: vector<vector<int>> combine(int n, int k) { vector<vector<int>...原创 2019-10-22 19:12:24 · 124 阅读 · 0 评论 -
LeetCode 495. 提莫攻击 解答
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。class Solution {public: int findPoisonedDuration(vector&...原创 2019-10-21 23:45:55 · 299 阅读 · 0 评论 -
LeetCode 566. 重塑矩阵 解答
在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。遍历原矩阵,将其...原创 2019-10-21 18:53:06 · 123 阅读 · 0 评论 -
LeetCode 575. 分糖果 解答
给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。将每个糖果都分一个给妹妹,且最大妹妹只能得到一半糖果。建立哈希表求解即可。注意这里Set的初始化方式。class Solution {public: int distributeCandies(vector...原创 2019-10-21 16:34:39 · 229 阅读 · 0 评论 -
LeetCode 551. 学生出勤记录 I 解答
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。你需要根据这个学生的出勤记录判断他是否会被奖赏。class Solution {publi...原创 2019-10-21 16:12:35 · 158 阅读 · 0 评论 -
LeetCode 257. 二叉树的所有路径 解答
给定一个二叉树,返回所有从根节点到叶子节点的路径。说明:叶子节点是指没有子节点的节点。class Solution {public: vector<string> binaryTreePaths(TreeNode* root) { vector<string> res; if(!root) return res;...原创 2019-10-21 15:01:35 · 243 阅读 · 0 评论 -
LeetCode 414. 第三大的数 解答
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。题目要求是O(n),因此所有sort(复杂度O(nlgn))是不正确的。第一想法是使用优先队列来做,复杂度O(nlg3))的算法,但耗费堆内存,效率不高。还未想到更优解法,先挖坑.......原创 2019-10-19 16:47:03 · 209 阅读 · 0 评论 -
LeetCode 412. Fizz Buzz
写一个程序,输出从 1 到 n 数字的字符串表示。1. 如果 n 是3的倍数,输出“Fizz”;2. 如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。一道很简单的题目,但没有写出最优雅的解法class Solution {public: vector<string> fizzBuzz(int n...原创 2019-10-19 16:09:11 · 563 阅读 · 0 评论 -
LeetCode 441. 排列硬币 解答
你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。给定一个数字 n,找出可形成完整阶梯行的总行数。n 是一个非负整数,并且在32位有符号整型的范围内。解方程 X^2+X-2n = 0,注意 n 右移可能溢出。class Solution {public: int arrangeCoins(int n) { re...原创 2019-10-19 15:55:16 · 200 阅读 · 0 评论 -
LeetCode 476.数字的补数 解答
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意: 给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。思路:求反就是原数字和若干位111异或即可(因为没有前导零位)例如5取反 就是 101^111=010class Solution {public: //取反就是和1异或 int findComp...原创 2019-10-19 11:54:25 · 195 阅读 · 0 评论