自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 删除排序数组的重复项问题

删除排序数组的重复项问题I , II删除排序数组的重复项问题I问题描述思路分析代码实现public static void main(String[] args) { int[] nums = {0,0,1,1,1,2,2,3,3,4}; RemoveDuplicates solution = new RemoveDuplicates(); int count = solution.removeDuplicates(nums);

2020-10-28 16:38:28 224

原创 算法题之重构乘积数组问题

算法题之重构乘积数组问题问题描述思路分析res[i]中在两次遍历过程中乘积的元素变化图为:代码实现//思路.左右相间相乘法 public int[] constructArr02(int[] a) { int n = a.length; if (a == null || n == 0) return new int[0]; //定义一个新的结果集res int[] res = new int[n]; //

2020-10-18 13:20:20 165

原创 华为面试题计算求和的最短时间问题

华为面试题计算求和的最短时间问题问题描述问题分析图解我们以nums = {5,4,1,2,2}这5个数为例代码实现 public static void main(String[] args) { //编写输入案例:n为计算数的个数;n个数用队列queue接收(此处队列用添加有序的LinkedList定义) Scanner scanner = new Scanner(System.in); System.out.println("请输入要输入

2020-10-16 12:20:17 1159 1

原创 算法题之字符串相乘问题

算法题之字符串相乘问题问题描述题解图解1图解2代码实现 public String multiply(String num1, String num2) { //首先我们去除掉特殊情况 //如果num1和num2长度为0或者num1和num2为"0",则返回0 if (num1.length() == 0 || num2.length() == 0 || num1.equals("0") || num2.equals("0")) retur

2020-10-15 12:53:36 287 1

原创 算法题之分割等和子集问题

算法题之分割等和子集问题问题描述问题分析代码实现//利用动态规划完成问题的求解(二维动态规划数组完成) public boolean canPartition(int[] nums) { //首先我们需要判断nums数组的长度是否 > 1 if (nums.length < 2) return false; //进行求nums数组所有正整数的和 int sum = 0; for (int num

2020-10-12 21:39:47 428

原创 算法题之最长有效括号的长度问题

算法题之最长有效括号的长度问题问题描述思路分析代码实现public int longestValidParentheses(String s) { if (s == null || s.length() <= 1) { return 0; } //定义一个栈 Stack<Integer> stack = new Stack<>(); int len = s.len

2020-10-12 11:00:58 525

原创 算法题之环形链表问题

算法题之环形链表问题环形链表问题1思路1:利用快慢指针来实现分析:我们定义两个指针:分别指向头节点和头节点的下一个节点;每一次慢指针平移一步(即平移到它的next节点),而快指针则平移两步(即平移到它的next的next节点),完成快指针追赶慢指针的操作;如果该链表时环形链表,则一定会在某一个时间点,快指针会和慢指针在环内相遇代码实现/* * 环形链表I:方法1:使用两个指针(快慢指针)来完成环形链表的是否有环判断问题 * 即定义一个指针first和指针second同时指向

2020-10-10 19:31:03 202

原创 算法题之合并两个有序单向链表

算法题之合并两个有序单向链表题目描述题目分析代码实现思路1代码:public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //首先判断两个头结点是否都为null,如果均为null则直接返回null即可 if (l1 == null && l2 == null) { return null; } //定义一个新的链表头节点:仅仅表示一

2020-10-07 20:58:37 648

原创 算法题之有效括号问题

算法题之有效括号问题题目描述思路分析思路图解代码实现 public boolean isValid(String s) { //首先对s进行判断:(1)若s为空或者null,则表示有效字符串(2)若s的长度为奇数,则不可能满足要求,直接返回false if (s == null || s.length() == 0) return true; if (s.length() % 2 == 1) return false; //首先

2020-10-07 12:29:58 291

原创 算法题之颜色分类问题(O(n)时间复杂度)

算法题之颜色分类问题(O(n)时间复杂度)题目描述思路分析思路一图解思路2图解代码实现 //思路2:双指针操作 public void sortColors(int[] nums) { //定义两个指针:left指向数组起始索引,right指向数组末尾索引 int left = 0; int right = nums.length - 1; //for循环遍历nums数组 for (int i =

2020-10-07 12:26:55 250

原创 算法题之电话号码的字母组合问题

算法题之电话号码的字母组合问题题目描述思路分析图解代码实现public List<String> letterCombinations(String digits) { //定义res:存储最终字母组合的结果集 List<String> res = new ArrayList<>(); //如果传入的digits为null或者长度为0,则直接返回空的res if (digits == null

2020-10-06 10:48:04 297

原创 算法题之最接近的三数之和问题

算法题之最接近的三数之和问题题目描述题目分析图解以上面给的示例为例:代码实现 public int threeSumClosest(int[] nums, int target) { //定义一个存储每一次三个数组合的和 int res = 0; //若nums为null或者长度小于3,直接返回0 if (nums == null || nums.length < 3) { return res;

2020-10-06 10:45:11 219

原创 算法题之四数之和问题求解

算法题之四数之和问题求解问题描述思路分析代码实现[思路图解可以参考直接博客三数之和问题]算法题之三数之和问题 public List<List<Integer>> fourSum(int[] nums, int target) { List<List<Integer>> res = new ArrayList<>(); //首先对该数组进行排序处理 Arrays.sort(nums);

2020-10-05 15:48:50 283

原创 算法题之机器人运动范围问题

算法题之机器人运动范围问题问题描述思路分析思路1:使用递归回溯法进行求解代码实现 int moveCount; public int movingCount(int m, int n, int k) { //构造m行n列的二维数组: int[][] board = new int[m][n]; findMovingPath(0,0,m,n,board,k); return moveCount; } priv

2020-10-05 10:52:07 448

原创 算法题之三数之和问题

算法题之三数之和问题题目描述题目分析方式2:图解最后得到结果集:java代码方式1:dfs遍历public List<List<Integer>> threeSum(int[] nums) { //首先对nums数组进行排序处理 Arrays.sort(nums); //保存所有的结果集:res List<List<Integer>> res = new ArrayLi

2020-10-04 18:12:51 1448

原创 算法题之罗马数字转成整数

算法题之罗马数字转成整数问题描述将罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 X

2020-10-03 15:37:27 258

原创 算法题之将整数转换成罗马数字

算法题之将整数转换成罗马数字题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即

2020-10-03 11:28:08 570

动态规划算法笔记总结ZIP分享

进行动态规划问题的详细总结,总结了相关的经典问题,例如0-1背包问题,完全背包问题,然后对LeetCode若干使用动态规划实现的题型进行梳理和思路分析讲解

2020-12-01

空空如也

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

TA关注的人

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