自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 单链表图文解析

数据结构单链表图文解释

2021-10-01 22:38:26 93

原创 长度最小的子数组(双指针-滑动窗口)

给定一个含有 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来源:力扣(Lee

2022-04-07 14:52:28 87

原创 有序数组的平方 (相向的双指针)

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例 1:输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2:输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= nums.length <= 104-104 <= nums

2022-04-07 11:57:10 79

原创 移动零(快慢指针)

移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]class Solution { public void moveZeroes(int[] nums) { int slowindex=0; fo.

2022-04-07 11:11:30 104

原创 删除有序数组中的重复项(快慢指针法)

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。判题标准:系统会用下

2022-04-07 10:30:26 181

原创 移除元素(暴力加双指针法)

移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷.

2022-04-07 10:04:16 50

原创 二分查找(基础算法)

二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1这是一个很基础的二分查.

2022-04-06 14:28:03 350

原创 模拟问题(待更新)

加法系列二进制加法不能用JAVA 的API直接进行转化相加 会溢出的package 模拟;import java.math.BigInteger;public class 进制转换 { public static void main(String[] args) { System.out.println(addBinary("11111111111001010000000011", "10")); } public static String addBinary(String a

2022-04-05 11:57:46 62

原创 三数之和 四数之和 (双指针)

题目链接三数之和四数之和运用一个左右指针来回判断参考文章代码随想录package 回溯;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class 三数之和 { public static void main(String[] args) { } public List<List<Integer>> threeSum(int[] nu

2022-04-03 16:01:17 52

原创 经典问题 N皇后 (回溯)

题目链接N皇后问题这是一个典型的回溯问题 也可以称为棋盘问题,我们由题目知道的约束条件1:左上角和右上角不能连续放2:同一行和同一列不能放然后做回溯题目的第一步画N叉树然后可以看出1:递归深度为行 循环遍历长度为列2:需要一个函数来判断是否可以放在该位置3:终止条件为最后一行package 回溯;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class N皇后

2022-04-03 11:37:26 237

原创 全排列 II (回溯)

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]来源:力扣(LeetCode)这道题目比全排列的题目多了一个去重问题,去重问题在之前做总和问题的时候遇到过了,就是要去重,去重的时候虽然可以继续用used数组,但是

2022-04-03 10:00:59 601

原创 全排列 (回溯)

给定一个不含重复数字的数组 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)这是排列问题不是组合问题,组合问题的数目可以1个或者2个N个,而排列问题都得全部选中,所以

2022-04-02 15:25:30 411

原创 递增子序列 (回溯)

给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。示例 1:输入:nums = [4,6,7,7]输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]示例 2:输入:nums = [4,4,3,2,1]输出:[[4,4]]来源:力扣(LeetCode)这题也是一

2022-04-01 15:10:22 323

原创 子集 II (回溯)

给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subsets-ii著作权归领扣网络所有。商业转载请联系官

2022-04-01 10:48:07 71

原创 子集 (回溯)

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subsets著作权归领扣网络所有。商业转载请联系

2022-04-01 09:41:20 146

原创 复原 IP 地址 (回溯)

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “[email protected]” 是 无效 IP 地址。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。你 不能 重新排序或删除 s 中的任何

2022-03-31 11:53:32 1541

原创 分割回文串 (回溯)

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = “aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]示例 2:输入:s = “a”输出:[[“a”]]来源:力扣(LeetCode)package 回溯;import java.util.ArrayList;import java.util.LinkedList;import java.util.Li

2022-03-30 15:08:56 893

原创 组合总和II (回溯)

给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次 。注意:解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]示例 2:输入: candidates = [2,5,2,1,2], tar

2022-03-30 10:49:16 49

原创 组合总和 (回溯)

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例 1:输入:candidates = [2,3,6,7], target = 7输

2022-03-29 20:30:59 322

原创 电话号码的字母组合(回溯)

定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,“b”,“c”]提示:0 <= digits.length <= 4

2022-03-29 14:51:14 108

原创 组合总和 III (回溯)

找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]解释:1 + 2 + 4 = 7没有其他符合的组合了。示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]解释:1 + 2 + 6 = 91 + 3 + 5 = 92 + 3

2022-03-29 10:26:47 316

原创 Java基础知识 泛型数组列表无类型参数

package arrayList;import abstractClasses.Employee;import java.util.ArrayList;public class Test { public static void main(String[] args) { var staff = new ArrayList<>();//没有声明类型参数的泛型类 staff.add(new Employee("111",2,2,2,2))

2022-03-28 20:45:38 917

原创 组合 (回溯)

给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]package 回溯;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class 组合 { static List<List<Integer&gt

2022-03-28 15:48:34 1162

原创 数论 Nim游戏

一共有N堆石子,编号1…n ,第i堆中有个a[门]个石子。每一次操作Alice和Bob可以从任意-堆石子中取出任意数量的石子至少取一颗,至多取出这一-堆剩下的所有石子。两个人轮流行动,取光所有石子的- -方获胜。Alice为先手。 给定a,假设两人都采用最优策略,谁会获胜?就是说轮到谁的时候没有石子取,谁就输了。结论:把n堆石子10进制数求异或,如果异或结果=0,先手必输,如果异或结果!=0,先手必赢。package 蓝桥杯真题;public class Nim游戏 { public stati

2022-03-28 10:01:43 2619

原创 蓝桥杯 砝码称重(进制问题)

package 蓝桥杯真题;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class 砝码称重 { public static void main(String[] args) { Scanner sc= new Scanner(System.in); String x=Integer.toString(sc.nextInt(), 3); char[] num= ne

2022-03-27 15:58:02 434

空空如也

空空如也

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

TA关注的人

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