自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 40. 组合总和 II

题目给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ]示例 2

2021-06-09 21:17:37 98

原创 43. 字符串相乘

/** * 写的有点复杂不过过程还是很清晰的 * */public String multiply(String num1, String num2) { //为0直接返回 if(num1.equals("0")||num2.equals("0")) return "0"; char[] chars = num1.toCharArray(); String res=""; for(int i=chars.length-1;i>=0;i--){

2021-05-23 17:33:18 94

原创 763. 划分字母区间

public List<Integer> partitionLabels(String s) { Map<Character,Integer> map=new HashMap<>(); List<Integer> ans=new ArrayList<>(); char[] chars = s.toCharArray(); for(int i=0;i<chars.length;i++){ map.pu

2021-05-23 14:12:42 111

原创 56. 合并区间

题目以数组intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:intervals = [[1,4],[4

2021-05-18 21:25:02 68

原创 209. 长度最小的子数组

题目给定一个含有 n个正整数的数组和一个正整数target。找出该数组中满足其和≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr],并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,4,4]输出:1示例 3:

2021-05-17 22:44:01 41

原创 42. 接雨水

题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == height.length0 <= n <

2021-05-17 21:27:04 57

原创 138. 复制带随机指针的链表

题目给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如,如果原链表中有 X 和 Y两个节点,其中 X.random --> Y 。那么在复

2021-05-17 00:51:03 56

原创 61. 旋转链表

题目给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1]提示:链表中节点的数目在范围 [0, 500] 内-100 <= Node.val <= 1000 <= k <= 2 * 109来源:力扣(LeetCode)链接:https://leet

2021-05-17 00:18:05 56

原创 25. K 个一组翻转链表

题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-nodes-in-k-group著作权归领扣网络所有。商业转载请联

2021-05-14 23:11:30 62

原创 1734. 解码异或后的排列

1734. 解码异或后的排列给你一个整数数组 perm ,它是前 n 个正整数的排列,且 n 是个 奇数 。它被加密成另一个长度为 n - 1 的整数数组 encoded ,满足 encoded[i] = perm[i] XOR perm[i + 1] 。比> 方说,如果 perm = [1,3,2] ,那么 encoded = [2,1] 。给你 encoded 数组,请你返回原始数组 perm 。题目保证答案存在且唯一。示例 1:输入:encoded = [3,1]输出:[1,2,3

2021-05-11 21:52:47 57

原创 46. 全排列

46. 全排列给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble

2021-05-10 21:07:50 72

原创 36. 有效的数独

请你判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规则,验证已经填入的数字是否有效即可。来源:力扣(LeetCode)链接:https://leetcode-cn.com.

2021-05-09 22:13:00 90

原创 NIO实践群聊Demo

1.服务端/** * @author : zjx * @Description : * @date : Created in 9:18 2021/5/8 * @Modified By: */public class GroupChatServer { private final ServerSocketChannel serverSocketChannel; private final Selector selector; public GroupChatServer

2021-05-08 11:19:19 46

原创 NIO 代码demo

NIO 代码demo1.服务端代码/** * @author : zjx * @Description : * @date : Created in 15:03 2021/5/7 * @Modified By: */public class NioServer { public static void main(String[] args) throws IOException { ServerSocketChannel serverSocketChannel=Se

2021-05-07 16:23:15 189

原创 JUC笔记之尚硅谷周阳老师思维导图整理

文章目录1. JUC 是什么2. Lock 接口3. Lambda表达式复习--详情请看 on java 84. 线程间通信5. 线程间定制化调用通信6.NotSafeDemo7.多线程锁8. Callable接口9. JUC强大的辅助类讲解10. ReentrantReadWriteLock读写锁11.阻塞队列13. 线程池13. java8之流式计算 -- 详情请看 on java 814.分支合并框架15. 异步回调1. JUC 是什么java.util.concurrent在并发编程中使用的工

2020-09-19 22:00:16 4952 1

原创 Linux 基础常用指令

文章目录1. 开机、重启和用户登录注销关机&重启命令用户的登录和注销用户管理用户组管理和用户有关的文件位置2. 实用指令linux系统运行级别示意图切换运行级别帮助指令文件目录类时间日期类搜索查找类压缩和解压缩3. 组管理和权限管理4. crond任务调度5. linux磁盘分区/挂载6. 网络配置7. 进程管理指令服务管理动态进程监控8. RPM和YUMRPMYUM1. 开机、重启和用户登录注销关机&重启命令shutdownshutdown -h now 立即关机shutdo

2020-08-18 14:31:54 102

原创 33. Search in Rotated Sorted Array

题目规定要logn时间复杂度 明显就是二分法,我们只要对二分法稍微加点判断就ok了public static int search(int[] nums, int target) { int start = 0, end = nums.length - 1; int result = -1; while (start <= end) { int mid = (start + end) / 2; if (nums[mid] == target) {

2020-08-15 20:57:31 87

原创 31. Next Permutation

31. Next Permutationpublic static void nextPermutation(int[] nums) { if(nums.length<2){ return; } int i=nums.length-2; for(;i>=0;i--){ if(nums[i]<nums[i+1]){ break; } } if(i>=0){ for(int

2020-07-28 21:32:17 69

原创 22. Generate Parentheses

22. Generate Parentheses1.深度优先(回溯)public static void dfs(String s,int left,int right,List<String> res){ if(left==0&&right==0){ res.add(s); return ; } if(left>right){ return ; } if(left>0){

2020-07-27 23:25:51 66

原创 24. Swap Nodes in Pairs

24. Swap Nodes in Pairs1.自己的垃圾 解法class Solution { public ListNode swapPairs(ListNode head) { if(head==null||head.next==null) return head; ListNode dumy=new ListNode(0); dumy.next=head; ListNode p1=dumy;

2020-07-23 00:28:08 74

原创 19. Remove Nth Node From End of List

19. Remove Nth Node From End of Listclass Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dumy=new ListNode(0); dumy.next=head; ListNode p1=dumy,p2=dumy; for(int i=0;p1!=null;i++){

2020-07-21 01:52:12 61

原创 18. 4Sum

18. 4Sum其实就是三数之和就多个循环,本来跑起来24MS看了大神的题解,根据最大最小值剪枝,最后7MSclass Solution { public List<List<Integer>> fourSum(int[] nums, int target) { List<List<Integer>> res=new ArrayList<>(); if(nums==null||nums.length<4){

2020-07-19 22:33:44 673

原创 17. Letter Combinations of a Phone Number( 电话号码的字母组合)

17. Letter Combinations of a Phone Number( 电话号码的字母组合)暴力解法public static List<String> letterCombinations(String digits) { if (digits.isEmpty()) { return new ArrayList<>(); } char[] numbers = digits.toCharArray(); Map<Ch

2020-07-13 22:54:58 175

原创 16. 3Sum Closest

16. 3Sum Closestclass Solution { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int result=0,minDiff=Integer.MAX_VALUE; for(int i=0;i<nums.length;i++){ if(i>0&&nums[i-1]==nums[i]){ conti

2020-07-12 17:34:48 65

原创 15. 3Sum

15. 3Sumclass Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> result=new ArrayList<>(); Arrays.sort(nums); for(int i=0;i<nums.length;i++){ if(i>0&&num

2020-07-11 21:08:10 67

原创 12. Integer to Roman

12. Integer to Romanclass Solution { public String intToRoman(int num) { int[] nums={1000,900,500,400,100,90,50,40,10,9,5,4,1}; String[] roman={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; StringBuffer sb=new StringBuf

2020-07-05 10:30:46 61

原创 11. Container With Most Water

11. Container With Most Water方法一:暴力破解public static int maxArea(Integer[] height) { int mostWater=0; for(int i=0;i<height.length-1;i++){ for(int j=i+1;j<height.length;j++){ int tempWater=(j-i)*Math.min(height[i],height[j]);

2020-07-03 22:03:38 76

原创 9. Palindrome Number

9. Palindrome Number判断数字回文class Solution { public static boolean isPalindrome(int x) { if (x < 0) { return false; } List<Integer> list = new ArrayList<>(); int num = x; while (x > 0) { int te

2020-07-03 21:30:30 79

原创 6. ZigZag Conversion

佛性学习–简称佛学6. ZigZag Conversion每行都相当一个数组按Z字形 上下遍历 当行数为第一行或者最后一行时,换方向最后把数组拼起来就可以了class Solution { public String convert(String s, int numRows) { List<StringBuffer> row= new ArrayList<>(); for(int i=0;i<numRows;i++) row.a

2020-07-01 21:02:02 91

原创 5. Longest Palindromic Substring

暴力方式public class LongestPalindromicSubstring_violent { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while(scanner.hasNext()){ String s=scanner.nextLine(); System.out.println(longestPalindromicSubS

2020-06-26 12:23:11 113

原创 3. Longest Substring Without Repeating Characters

class Solution { public int lengthOfLongestSubstring(String s) { Map<Character,Integer> map=new HashMap<>(); int maxLength=0; int tmpLength=0; char[] list=s.toCharArray(); for(int i=0;i<list.length;i++){ if(map.

2020-06-20 15:04:44 72

原创 102. 二叉树的层序遍历

class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res=new ArrayList<>(); if(root==null) return res; Queue<TreeNode> helper=new ArrayDeque.

2020-05-13 22:46:43 128

原创 leetcode-8. 字符串转换整数 (atoi)

记录一下自己的学习历程class Solution { public int myAtoi(String str) { str=str.trim(); if(str.length()==0) return 0; char[] s=str.toCharArray(); int i=0; ...

2020-05-04 01:11:00 80

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除