随笔分类 -  LeetCode

摘要:思路 方法一:直接调用split()和parseInt()库方法 class Solution { public int compareVersion(String version1, String version2) { /* 调库方法 */ String[] vs1 = version1.spl 阅读全文
posted @ 2022-05-28 16:12 拾月凄辰 阅读(26) 评论(0) 推荐(0) 编辑
摘要:思路 手撕快速排序。 class Solution { public int[] sortArray(int[] nums) { // 手撕快速排序 int left = 0, right = nums.length-1; quickSort(nums, left, right); return n 阅读全文
posted @ 2022-05-27 12:01 拾月凄辰 阅读(27) 评论(0) 推荐(0) 编辑
摘要:本题同:LeetCode 2. 两数相加 阅读全文
posted @ 2022-05-27 11:32 拾月凄辰 阅读(6) 评论(0) 推荐(0) 编辑
摘要:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } 阅读全文
posted @ 2022-05-27 11:30 拾月凄辰 阅读(20) 评论(0) 推荐(0) 编辑
摘要:思路 方法:二分搜索 class Solution { public int search(int[] nums, int target) { int left, mid, right; left = 0; right = nums.length-1; while(left <= right) { 阅读全文
posted @ 2022-05-25 19:53 拾月凄辰 阅读(15) 评论(0) 推荐(0) 编辑
摘要:思路 方法:层序遍历 保存层序遍历每一层的最后一个数字即可。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right 阅读全文
posted @ 2021-03-14 20:08 拾月凄辰 阅读(47) 评论(0) 推荐(0) 编辑
摘要:思路 LeetCode官方题解 - 接雨水 阅读全文
posted @ 2021-03-14 17:56 拾月凄辰 阅读(44) 评论(0) 推荐(0) 编辑
摘要:思路 方法:动态规划 思路来源: LeetCode官方题解 - 最大正方形 理解 三者取最小+1 1 class Solution { 2 public: 3 int maximalSquare(vector<vector<char>>& matrix) { 4 if (matrix.size() 阅读全文
posted @ 2021-03-13 20:25 拾月凄辰 阅读(54) 评论(0) 推荐(0) 编辑
摘要:思路 方法:用栈模拟 1 class Solution { 2 public: 3 string decodeString(string s) { 4 deque<char> d; 5 6 for(int i = 0; i < s.length(); ++i) { 7 if(s[i] == ']') 阅读全文
posted @ 2021-03-13 20:04 拾月凄辰 阅读(42) 评论(0) 推荐(0) 编辑
摘要:思路 方法:找规律 1 class Solution { 2 public: 3 string maximumBinaryString(string binary) { 4 int n = binary.length(); 5 int firstZeroIndex = -1; 6 for(int i 阅读全文
posted @ 2021-03-13 19:24 拾月凄辰 阅读(120) 评论(0) 推荐(0) 编辑
摘要:思路 方法:暴力模拟 最直观的方法是不断地遍历数组,如果还有糖就一直分,直到没有糖为止。 1 class Solution { 2 public: 3 vector<int> distributeCandies(int candies, int num_people) { 4 vector<int> 阅读全文
posted @ 2021-03-09 18:22 拾月凄辰 阅读(99) 评论(0) 推荐(0) 编辑
摘要:思路 方法:哈希set 找到唯一元素数量的另一种方法是遍历给定 candies 数组的所有元素,并继续将元素放入集合中。通过集合的属性,它将只包含唯一的元素。最后,我们可以计算集合中元素的数量,例如 count。要返回的值将再次由 min(count,n/2) 给出,如前面的方法所述。其中 n 表示 阅读全文
posted @ 2021-03-09 18:11 拾月凄辰 阅读(57) 评论(0) 推荐(0) 编辑
摘要:思路 方法:双指针 令i = 0,循环遍历数组,直到i指向第一个值为0的元素令j = i + 1, 循环遍历数组,直到j指向第一个值非0的元素swap(nums[i],nums[j])重复上述流程,直到i或j大于题中给出的数组长度 1 class Solution { 2 public: 3 voi 阅读全文
posted @ 2021-03-07 22:03 拾月凄辰 阅读(35) 评论(0) 推荐(0) 编辑
摘要:思路 这题和剑指 Offer 29. 顺时针打印矩阵一样。 阅读全文
posted @ 2021-03-06 20:56 拾月凄辰 阅读(42) 评论(0) 推荐(0) 编辑
摘要:思路 方法:首尾双指针 1 class Solution { 2 public: 3 void reverseString(vector<char>& s) { 4 int i = 0, j = s.size()-1; 5 while(i < j) { 6 swap(s[i], s[j]); 7 + 阅读全文
posted @ 2021-03-06 20:51 拾月凄辰 阅读(33) 评论(0) 推荐(0) 编辑
摘要:解法看这篇:二叉树的非递归遍历 阅读全文
posted @ 2021-03-06 20:00 拾月凄辰 阅读(39) 评论(0) 推荐(0) 编辑
摘要:解法看这篇:二叉树的非递归遍历 阅读全文
posted @ 2021-03-06 19:44 拾月凄辰 阅读(37) 评论(0) 推荐(0) 编辑
摘要:思路 方法:排序 + 双指针 先排序,之后有序数组,固定一个数,对后面的有序序列进行双指针查找,双指针方法见此题:LeetCode 167. 两数之和 II - 输入有序数组 1 class Solution { 2 public: 3 vector<vector<int>> threeSum(ve 阅读全文
posted @ 2021-03-01 11:58 拾月凄辰 阅读(69) 评论(0) 推荐(0) 编辑
摘要:思路 方法一:哈希表 遍历整棵树,找出所有可能的组合,判断是否存在和为 k 的一对节点。现在在此基础上做一些改进。 如果存在两个元素之和为 k,即 x+y=k,并且已知 x 是树上一个节点的值,则只需判断树上是否存在一个值为 y 的节点,使得 y=k-x。基于这种思想,在树的每个节点上遍历它的两棵子 阅读全文
posted @ 2021-03-01 11:18 拾月凄辰 阅读(63) 评论(0) 推荐(0) 编辑
摘要:思路 方法一:二分查找 在数组中找到两个数,使得它们的和等于目标值,可以首先固定第一个数,然后寻找第二个数,第二个数等于目标值减去第一个数的差。利用数组的有序性质,可以通过二分查找的方法寻找第二个数。为了避免重复寻找,在寻找第二个数时,只在第一个数的右侧寻找。 1 class Solution { 阅读全文
posted @ 2021-03-01 11:03 拾月凄辰 阅读(89) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩