LeetCode
sevenjoy007
这个作者很懒,什么都没留下…
展开
-
LeetCode945. 使数组唯一的最小增量
https://leetcode-cn.com/problems/minimum-increment-to-make-array-unique/题目给定整数数组 A,每次 move 操作将会选择任意A[i],并将其递增1。返回使 A中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2]输出:1解释:经过一次 move 操作,数组将变为 [1, 2, 3]。...原创 2020-03-22 11:03:10 · 109 阅读 · 0 评论 -
LeetCode 365. 水壶问题
https://leetcode-cn.com/problems/water-and-jug-problem/问题有两个容量分别为x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的z升水。你允许:装满任意一个水壶 清空任意一个水壶 从一个水壶向另外一个水壶倒水,直到装满或...原创 2020-03-21 11:26:33 · 89 阅读 · 0 评论 -
LeetCode1071. 字符串的最大公因子
https://leetcode-cn.com/problems/greatest-common-divisor-of-strings/题目对于字符串S 和T,只有在 S = T + ... + T(T与自身连接 1 次或多次)时,我们才认定“T 能除尽 S”。返回最长字符串X,要求满足X 能除尽 str1 且X 能除尽 str2。示例 1:输入:str1 = "...原创 2020-03-12 11:18:37 · 105 阅读 · 0 评论 -
LeetCode543. 二叉树的直径
https://leetcode-cn.com/problems/diameter-of-binary-tree题目给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 ...原创 2020-03-10 12:18:35 · 104 阅读 · 0 评论 -
leetcode刷题——数据结构(8):位运算
位运算 0. 原理 1. 统计两个数的二进制表示有多少位不同 第一次可做出Ok 2. 数组中唯一一个不重复的元素 第一次可做出Ok 3. 找出数组中缺失的那个数 ...原创 2020-02-25 17:17:57 · 305 阅读 · 0 评论 -
leetcode刷题——数据结构(7):图
图 二分图 1. 判断是否为二分图 思考很久后可做出 ※ 拓扑排序 1. 课程安排的合法性 一开始未做出 ※ 2. 课程安排的顺序 思考后可做出,类上 ...原创 2020-02-25 15:52:59 · 277 阅读 · 0 评论 -
leetcode刷题——数据结构(6):数组与矩阵
数组与矩阵 1. 把数组中的 0 移到末尾 思考后可做出 2. 改变矩阵维度 一开始可做出Ok 3. 找出数组中最长的连续 1 一开始可做出Ok 4. 有序矩阵查找 ...原创 2020-02-25 15:47:18 · 821 阅读 · 0 评论 -
leetcode刷题——数据结构(5):字符串
字符串 1. 字符串循环移位包含※ 2. 字符串循环移位 3. 字符串中单词的翻转 4. 两个字符串包含的字符是否完全相同 第一次可做...原创 2020-02-25 15:38:10 · 285 阅读 · 0 评论 -
leetcode刷题——数据结构(4):哈希表
哈希表 1. 数组中两个数的和为给定值 解法可达O(N)时间复杂度 ※ 2. 判断数组是否含有重复元素 方法可优化 ※ 3. 最长和谐序列 思考后可做出 4. 最长连续序列 ...原创 2020-02-23 21:48:24 · 103 阅读 · 0 评论 -
leetcode刷题——数据结构(3):栈和队列
栈和队列 1. 用栈实现队列 思考后可做出 ※ 2. 用队列实现栈 思考后可做出, 解法可简化 ※ 3. 最小值栈 思考后可做出 4. 用栈实现括号匹配 ...原创 2020-02-23 21:45:41 · 123 阅读 · 0 评论 -
leetcode刷题——数据结构(2):树
树 递归(2.22) 1. 树的高度 第一次可做出Ok 2. 平衡树 思考后可做出Ok 3. 两节点的最长路径 思考后可做出 4. 翻转树 ...原创 2020-02-23 21:41:08 · 545 阅读 · 0 评论 -
leetcode刷题——数据结构(1):链表
链表 1. 找出两个链表的交点 第一次可做出, 解法可优化 ※ 2. 链表反转 递归/迭代 两种方法 ※ 3. 归并两个有序的链表 可做出 经典题型,两种方法需掌握 ※ ...原创 2020-02-22 21:29:02 · 149 阅读 · 0 评论 -
leetcode刷题——算法(8):数学
素数分解 整除 最大公约数最小公倍数 1. 生成素数序列 思考后可做出Ok 2. 最大公约数 3. 使用位操作和减法求解最大公约数 ...原创 2020-02-21 15:19:44 · 340 阅读 · 0 评论 -
leetcode刷题——算法(7):动态规划
动态规划 斐波那契数列 1. 爬楼梯 第一次做出Ok 注意递归可能超时 2. 强盗抢劫 修改后Ok, 可简化 3. 强盗在环形街区抢劫(2.19)...原创 2020-02-20 23:26:24 · 1270 阅读 · 0 评论 -
leetcode刷题——算法(6):搜索
搜索(2.15) BFS 1. 计算在网格中从原点到特定点的最短路径长度 修改后做出 2. 组成整数的最小平方数数量(2.16) 一开始未做出 ※ 3. 最短单词路径...原创 2020-02-19 21:47:48 · 319 阅读 · 0 评论 -
leetcode刷题——算法(5):分治
分治(2.15) 1. 给表达式加括号 一开始未做出 ※ 2. 不同的二叉搜索树 一开始未做出 ※ 1. 给表达式加括号241. Different Ways to Add Parenthese...原创 2020-02-15 22:01:56 · 138 阅读 · 0 评论 -
leetcode刷题——算法(4):二分查找
二分查找 寻找一个数(基本的二分搜索) 因为我们初始化 right = nums.length - 1 所以决定了我们的「搜索区间」是 [left, right] 所以决定了 while (left <= right),同时也决定了 left = mid+1 和 right = mid-1 因为我们只需找到一个 target 的索引即可,...原创 2020-02-15 21:59:23 · 225 阅读 · 0 评论 -
leetcode刷题——算法(3):贪心思想
贪心思想:保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。 备注 1. 分配饼干 Ok,修改更简洁 2. 不重叠的区间个数(2.14) 一开始未做出 ※ 3. 投飞镖刺破气球...原创 2020-02-15 16:07:38 · 133 阅读 · 0 评论 -
leetcode刷题——算法(2):排序算法(下)
排序算法总结(2.11) Kth元素(2.12) 几种方法,关键:堆、快排 还不是很熟练 ※ 2. 出现频率最多的 k 个元素 桶排序,未作出 ※ 3. 按照字符出现次数对字符串排序...原创 2020-02-14 22:38:43 · 194 阅读 · 0 评论 -
leetcode刷题——算法(2):排序算法(上)
排序算法(2.11) O(N2) 简单排序 从序列中找到最小数,与第一个数交换;再从剩下的数中,找到最大数,与第二个数交换 比较次数为N(N-1)/2 O(N2) 冒泡排序 从后往前,相邻两个数进行比较,如前一个数大于后一个数,交换,如此一轮最小位于第一位;...原创 2020-02-12 15:26:06 · 124 阅读 · 0 评论 -
leetcode刷题——算法(1):双指针
1. 有序数组的 Two Sum167. Two Sum II - Input array is sorted (Easy)https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/submissions/2. 两数平方和633. Sum of Square Numbers (Easy)https:...原创 2020-02-12 14:58:39 · 148 阅读 · 0 评论 -
二叉树遍历:从中序和层序重构二叉树
近日,学习到二叉树遍历这块,书上只有中序+先序/后序的重构,网上关于中序+层序的重构也比较复杂。自己根据网上的进行修改简化,以此记录,同时给其他学习者一个参考。#include <cstdio>const int maxn = 10010;struct Node{ int x; Node *left, *right;};int levelorder[ma...原创 2019-11-07 21:50:06 · 205 阅读 · 0 评论 -
判断int型整数是否溢出
先创建一个long long型(8位)变量tmp先将值赋给tmp判断tmp的大小 if(tmp>INT_MAX||tmp<INT_MIN){ 溢出; }下面为leetcode第7题程序class Solution {public: int reverse(int x) { int y=0; ...原创 2019-05-23 12:19:22 · 1229 阅读 · 0 评论 -
删除链表中的节点
LeetCode237. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : v...原创 2019-05-30 10:42:40 · 75 阅读 · 0 评论 -
LeetCode 38. 报数
LeetCode 38. 报数报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211被读作"one 1"("一个一") , 即11。11被读作"two 1s"("两个一"), 即21。21被读作"one 2", "...原创 2019-05-30 16:37:43 · 85 阅读 · 0 评论 -
判断空字符串时返回空
判断空字符串:if(strs.empty) return ""; //注意这里不能return null;leetcode 第14题:最长公共前缀class Solution {public: string longestCommonPrefix(vector<string>& strs) { if(strs....原创 2019-05-28 19:25:19 · 1789 阅读 · 0 评论 -
创建链表
有两种方式:1.从表头插入p->next=head;head=p;2.从表尾插入定义完,rear=head;开始插入:rear->next=p;rear=p;最后,rear->next=p;return head->next;详细链接:https://www.cnblogs.com/plxx/p/3388098.htmlL...原创 2019-05-29 21:31:28 · 79 阅读 · 0 评论 -
LeetCode 69. 求x的平方根
法一:直接调用库函数,本题肯定不是用这种方法。(但是写在前面警示自己笔试时要变通hhhint mySqrt(int x) { return sqrt(x); }法二:二分法,注意非负数x的平方根<=x/2+1 int mySqrt(int x) { int i=0; int j=x/2+1; ...转载 2019-06-20 10:48:05 · 164 阅读 · 0 评论 -
双指针方法: 删除排序数组中的重复项
LeetCode26. 删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。我一开始的方法class Solution {public: int removeDuplicates(vector<int&...原创 2019-05-30 10:04:49 · 212 阅读 · 0 评论