- 博客(30)
- 收藏
- 关注
原创 leetcode刷题(单链表)8—两两交换链表中的节点
24. 两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { //执行
2020-09-11 17:22:37 478
原创 leetcode刷题(单链表)7—删除链表的倒数第N个节点
19. 删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { //执行用时:0 ms, 在所有 Java 提交中击败了10
2020-09-11 16:42:18 186
原创 leetcode刷题(单链表)6—旋转链表
61. 旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { // 执行用时:1 ms, 在所有 Java 提交中击败了89
2020-09-11 16:20:23 324
原创 leetcode刷题(单链表)5—删除排序链表中的重复元素 II
82. 删除排序链表中的重复元素 II给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { // 执行用时:1 ms, 在所有
2020-09-11 15:00:59 172
原创 leetcode刷题(单链表)4—删除排序链表中的重复元素
83. 删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { // 执行用时:0 ms, 在所有 Java 提交中击败了100
2020-09-11 14:59:21 129
原创 leetcode刷题(数组list回溯法)20—组合总和 III
216. 组合总和 III找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。class Solution { // 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 // 内存消耗:37 MB, 在所有 Java 提交中击败了79.23%的用户 //回溯法 public List<List<Integer>
2020-09-11 09:42:51 152
原创 leetcode刷题(数组list回溯法)19—组合总和
39. 组合总和给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。class Solution { // 执行用时:4 ms, 在所有 Java 提交中击败了55.57%的用户 // 内存消耗:39.7 MB, 在所有 Java 提交中击败了94.57%的
2020-09-10 20:10:23 186
原创 leetcode刷题(数组list回溯法)18—组合总和 II
40. 组合总和 II给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。class Solution { // 执行用时:20 ms, 在所有 Java 提交中击败了9.11%的用户 // 内存消耗:39.9 MB, 在所有 Java 提交中击败了77.52%的用户
2020-09-10 20:07:43 152
原创 leetcode刷题(单链表)3—分隔链表
86. 分隔链表给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。当单链表拆分时巨麻烦时,可以多开空间,简化问题/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; }
2020-09-10 19:53:16 173
原创 leetcode刷题(单链表)2—反转链表II
92. 反转链表 II反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseBetween(ListNode
2020-09-10 19:49:44 144
原创 leetcode刷题(单链表)1—反转链表
206. 反转链表反转一个单链表。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) { if(head =
2020-09-10 19:48:07 184
原创 leetcode刷题(数组list回溯法)17—组合
77. 组合给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。class Solution { //数组题,也用到了动规思想,不过不能全局存二维数组,或许存为三层动规数组ok //此处递归,利用List<Integer> dp记录上一层反过来的当前数组 public List<List<Integer>> combine(int n, int k) { List<Integer> dp =
2020-09-10 10:25:02 174
原创 leetcode刷题(数组·位异或)16— 只出现一次的数字 II
137. 只出现一次的数字 II给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?分析这个代码是参考leetcode题解写的,我按照我的理解分析一下代码的由来。此代码时间复杂度为O(n),空间复杂度为O(1)。先分析题目:非空整数数组、除一个元素出现一次外,其余元素均出现三次——找出出现一次的元素。即:我们需要区分出现一次和三次的元素,但在我们进行遍历的时候,
2020-09-08 15:54:30 223
原创 leetcode刷题(数组)15— 只出现一次的数字
136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?第一种方法时间复杂度:O(n),空间复杂度:最好:O(1),最坏:O(n)class Solution { public int singleNumber(int[] nums) { HashMap<Integer,Boolean> m = new Hash
2020-09-07 15:42:21 84
原创 leetcode刷题(数组)14—有效的数独
36. 有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。class Solution { public boolean isValidSudoku(char[][] board) { //执行用时
2020-09-05 16:35:21 109
原创 leetcode刷题(二维数组)13—旋转图像
48. 旋转图像给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。class Solution { public void rotate(int[][] matrix) { //执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 //内存消耗:39.8 MB, 在所有 Java 提交中击败了66.08%的用户 int
2020-09-05 15:06:15 2259
原创 leetcode刷题(数组)12—下一个排列
31. 下一个排列实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1class Solution { public void nextPermutation(int[] nums) { int
2020-09-04 21:13:08 76
原创 leetcode刷题(数组)11—移除元素
27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。class Solution { public int removeElement(int[] nums, int val) { int i = 0; int n = nums.length;
2020-09-04 21:10:50 99
原创 leetcode刷题(数组list)10—四数之和
18. 四数之和给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。借用上个博文里三数之和的函数,做了些剪枝class Solution { public List<List<Integer>> fourSum(int[] nums, int target)
2020-09-04 21:08:53 115
原创 leetcode刷题(数组)9—最接近的三数之和
16. 最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。与上一篇博文方法类似。class Solution { //这道题与3sum类似,可参考上一篇 public int threeSumClosest(int[] nums, int target) { int p,k,q; int len =
2020-09-04 14:59:34 118
原创 leetcode刷题(数组list)8—三数之和
15. 三数之和分析给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。class Solution { public List<List<Integer>> threeSum(int[] nums) { //时间复杂度O(n^2) List<List<Integer&
2020-09-04 11:05:34 369
原创 leetcode刷题(数组hash)7—两数之和
1. 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。class Solution { public int[] twoSum(int[] nums, int target) { int res[]=new int[2]; HashMap<Integer,Integer> m=new Hash
2020-09-03 17:19:03 70
原创 leetcode刷题(数组hash)6—最长连续序列
128. 最长连续序列给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。class Solution { public int longestConsecutive(int[] nums) { //利用hashmap int longest = 0; HashMap<Integer,Boolean> m=new HashMap<Integer,Boolean>(); f
2020-09-03 17:14:21 63
原创 leetcode刷题(数组)5—寻找两个正序数组的中位数
4. 寻找两个正序数组的中位数给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int m = nums1.length;
2020-09-03 16:03:37 117
原创 leetcode刷题(数组)4—搜索旋转排序数组 II
81. 搜索旋转排序数组 II假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。class Solution { public boolean search(int[] nums, int target) { //二分查找 int res = -1;
2020-09-02 19:18:28 106
原创 leetcode刷题(数组)3—搜索旋转排序数组
33. 搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。class Solution { public int search(int[] nums, int target) { //二分查找
2020-09-02 16:20:45 71
原创 leetcode刷题(数组)2—删除排序数组中的重复项II
80. 删除排序数组中的重复项 II给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。时间复杂度:O(N)空间复杂度:O(1)class Solution { public int removeDuplicates(int[] nums) { //最终长度 int res=0; //利用foreach
2020-09-02 10:59:29 72
原创 leetcode刷题(数组)1—删除排序数组中的重复项
leetcode刷题(数组)1—删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。class Solution {//时间复杂度O(n),空间复杂度O(1) public int removeDuplicates(int[] nums) { if(nums.length == 0) r
2020-09-02 10:08:14 120
原创 Springboot-activiti学习笔记之springboot项目搭建以及静态资源访问、端口等修改
Springboot-activiti学习笔记之springboot项目搭建以及静态资源访问、端口等修改1.0 项目搭建静态资源访问spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动化配置的静态目录/static/public/resources/META-INF/resources...
2019-03-12 15:36:49 539
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人