力扣
通过做题来提高自己的逻辑能力和动手能力
狂野小白兔
只是发发每天的学习日志,希望能帮到一些人理清Java学习思路图
展开
-
数组类目:500. 键盘行
思路:使用java的contains函数难点:判断!a1 && !a2 || !a1 && !a3 || !a2 && !a3的时候qw的判断:q —> true false false 判断完后判断w ——> true false false ==>结果:a1 a2 a3 = true false false判断的时候:!a1 !a2 !a3 = false true truefalse && true || fa原创 2021-09-17 17:58:28 · 89 阅读 · 0 评论 -
数组类目:1572. 矩阵对角线元素的和
思路:遍历矩阵遍历整个矩阵,如果当前坐标 (i, j)(i,j) 满足 i = ji=j 或者 i + j = n - 1i+j=n−1,就把当前的数字加入到答案中。代码:package com.kami.leetcode.array;public class L_1572 { public int diagonalSum(int[][] mat){ int n = mat.length, sum = 0; for(int i = 0; i < n;原创 2021-09-14 10:36:31 · 64 阅读 · 0 评论 -
数组类目:219. 存在重复元素 II
思路:代码:class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) { HashSet<Integer> set = new HashSet<>(); for(int i = 0; i < nums.length; i++){ if(set.contains(nums[i])){ re原创 2021-09-03 10:40:56 · 62 阅读 · 0 评论 -
数组类目:1207.独一无二的出现次数
思路:哈希表首先使用哈希表记录每个数字的出现次数;随后再利用新的哈希表,统计不同的出现次数的数目。如果不同的出现次数的数目等于不同数字的数目,则返回 true,否则返回false。代码:package com.kami.leetcode.array;import java.util.*;public class L_1207 { public boolean uniqueOccurrences(int[] arr){ Map<Integer, Integer>原创 2021-08-27 15:51:48 · 77 阅读 · 0 评论 -
数组类目:力扣14
思路:代码:public class L_14 { public String longestCommonPrefix(String[] strs){ if(strs.length == 0){ return ""; } String ans = strs[0]; for(int i = 1; i < strs.length; i++){ int j = 0;原创 2021-08-10 09:50:28 · 64 阅读 · 0 评论 -
数组类目:力扣26
思路:代码:class Solution { public int removeDuplicates(int[] nums) { if(nums == null || nums.length == 0) return 0; int p = 0; int q = 1; while(q < nums.length){ if(nums[q] != nums[p]){ nums原创 2021-08-06 17:31:53 · 68 阅读 · 0 评论 -
单链表类目:力扣21
原创 2021-07-16 19:49:29 · 65 阅读 · 0 评论 -
数组类目:力扣35
思路:二分法代码模板(背会即可)class Solution { public int searchInsert(int[] nums, int target) { int left = 0, right = nums.length - 1; // 注意 while(left <= right) { // 注意 int mid = (left + right) / 2; // 注意 if(nums[mid]原创 2021-08-11 10:14:47 · 69 阅读 · 0 评论 -
数学类目:力扣9. 回文数
思路:代码:public boolean isPalindrome(int x){ if(x < 0){ return false; } int cur = 0; int num = x; while (num != 0){ ///逆序 cur = cur * 10 + num % 10; num /= 10; }原创 2021-08-12 11:05:54 · 106 阅读 · 0 评论 -
单链表类目:力扣203
原创 2021-07-16 19:50:52 · 71 阅读 · 0 评论 -
数组类目:1512.好数对的数目
思路:暴力遍历,符合条件的ans+1,最后输出即可代码:public class L_1512 { public int numIdenticalPairs(int[] nums){ int ans = 0; for(int i = 0; i < nums.length; i++){ for(int j = i + 1; j < nums.length; j++){ if(nums[i] ==原创 2021-08-18 18:01:20 · 88 阅读 · 0 评论 -
数组类目:力扣88. 合并两个有序数组
思路:代码:class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int len1 = m - 1; int len2 = n - 1; int len = m + n - 1; while (len1 >= 0 && len2 >= 0){ // 注意--符号在后面,表示先进行计原创 2021-08-17 09:51:02 · 73 阅读 · 0 评论 -
数组类目:力扣1502.判断能否形成等差数列
代码: public boolean canMakeArithmeticProgression(int[] arr){ //数组排序 Arrays.sort(arr); for(int i = 0; i < arr.length - 2; i++){ if(arr[i + 1] - arr[i] != arr[i + 2] - arr[i + 1]){ return false;原创 2021-08-16 14:36:26 · 134 阅读 · 0 评论 -
数学类目:力扣66. 加一
思路:代码: public int[] plusOne(int[] digits) { int len = digits.length; for(int i = len - 1; i >= 0; i--){ digits[i]++; digits[i] %= 10; if(digits[i] != 0){ return digits;原创 2021-08-13 09:57:08 · 91 阅读 · 0 评论