avatar
文章
590
标签
104
分类
17

首页
归档
标签
分类
友链
日志
byu_rself
搜索
首页
归档
标签
分类
友链
日志

byu_rself

|
LC.P1654[到家的最少跳跃次数]
发表于2023-08-30|更新于2023-08-30|LeetCode|BFS
LC.P1654[到家的最少跳跃次数] 方法一:BFS12345678910111213141516171819202122232425262728293031323334class Solution { static final int n = 6000; public int minimumJumps(int[] forbidden, int a, int b, int x) { Set<Integer> set = new HashSet<>(); for (int f : forbidden) set.add(f); Deque<int[]> queue = new ArrayDeque<>(); queue.offer(new int[]{0, 1}); boolean[][] visited = new boolean[n][2]; visited[0][1] = true; ...
LC.P698[划分为k个相等的子集]
发表于2023-08-29|更新于2023-08-29|LeetCode|DFS•回溯
LC.P698[划分为k个相等的子集] 方法一:回溯+剪枝1234567891011121314151617181920212223242526272829303132class Solution { int[] nums; boolean[] visited; int n, target, k; public boolean canPartitionKSubsets(int[] nums, int k) { int total = 0; for (int num : nums) total += num; if (total % k != 0) return false; this.nums = nums; n = nums.length; this.k = k; Arrays.sort(nums); visited = new boolean[n]; target = total / k; r ...
LC.P823[带因子的二叉树]
发表于2023-08-29|更新于2023-08-29|LeetCode|DFS•动态规划•记忆化搜索•树•二叉树
LC.P823[带因子的二叉树] 方法一:记忆化搜索1234567891011121314151617181920212223242526272829303132333435class Solution { private static final int MOD = (int) 1e9 + 7; long[] cache; Map<Integer, Integer> map; int[] arr; public int numFactoredBinaryTrees(int[] arr) { this.arr = arr; int n = arr.length; Arrays.sort(arr); map = new HashMap<>(n); for (int i = 0; i < n; ++i) map.put(arr[i], i); cache = new long[n]; Arrays.fill ...
LC.P1879[两个数组最小的异或值之和]
发表于2023-08-28|更新于2023-08-28|LeetCode|动态规划•状态压缩•位运算
LC.P1879[两个数组最小的异或值之和] 方法一:动态规划+状态压缩123456789101112131415161718192021222324252627class Solution { private static final int INF = 0x3f3f3f3f; public int minimumXORSum(int[] nums1, int[] nums2) { int n = nums1.length, mask = 1 << n; int[][] f = new int[n + 10][mask]; for (int i = 0; i <= n; ++i) Arrays.fill(f[i], INF); f[0][0] = 0; for (int i = 1; i <= n; ++i) { for (int s = 0; s < mask; ++s) { ...
LC.P57[插入区间]
发表于2023-08-28|更新于2023-08-28|LeetCode|数组•排序
LC.P57[插入区间] 方法一:排序+区间合并1234567891011121314151617181920212223242526class Solution { public int[][] insert(int[][] intervals, int[] newInterval) { int[][] newIntervals = new int[intervals.length + 1][2]; for (int i = 0; i < intervals.length; ++i) { newIntervals[i] = intervals[i]; } newIntervals[intervals.length] = newInterval; return merge(newIntervals); } // LC.P56[合并区间] private int[][] merge(int[][] interv ...
LC.P56[合并区间]
发表于2023-08-27|更新于2023-08-28|LeetCode|数组•排序
LC.P56[合并区间] 方法一:排序+一次遍历12345678910111213141516class Solution { public int[][] merge(int[][] intervals) { Arrays.sort(intervals, (a, b) -> a[0] - b[0]); List<int[]> ans = new ArrayList<>(); ans.add(intervals[0]); for (int i = 1; i < intervals.length; ++i) { int start = intervals[i][0], end = intervals[i][1]; if (ans.get(ans.size() - 1)[1] < start) { ans.add(intervals[i]); } ...
LC.P870[优势洗牌]
发表于2023-08-26|更新于2023-08-28|LeetCode|数组•贪心•排序
LC.P870[优势洗牌] 方法一:贪心+排序123456789101112131415class Solution { public int[] advantageCount(int[] nums1, int[] nums2) { int n = nums1.length; Arrays.sort(nums1); int[] ans = new int[n]; Integer[] index = new Integer[n]; for (int i = 0; i < n; ++i) index[i] = i; Arrays.sort(index, (a, b) -> nums2[a] - nums2[b]); int left = 0, right = n - 1; for (int num : nums1) { ans[num > nums2[index[left]] ? index[left++ ...
LC.P649[Dota2参议院]
发表于2023-08-26|更新于2023-08-26|LeetCode|贪心•循环队列
LC.P649[Dota2参议院] 方法一:贪心+循环队列12345678910111213141516class Solution { public String predictPartyVictory(String senate) { int n = senate.length(); Deque<Integer> rd = new ArrayDeque<>(), dd = new ArrayDeque<>(); for (int i = 0; i < n; ++i) { if (senate.charAt(i) == 'R') rd.offer(i); else dd.offer(i); } while (!rd.isEmpty() && !dd.isEmpty()) { int a = rd.poll(), b = ...
LC.P228[汇总区间]
发表于2023-08-26|更新于2023-08-26|LeetCode|数组•双指针
LC.P228[汇总区间] 方法一:双指针123456789101112class Solution { public List<String> summaryRanges(int[] nums) { List<String> ans = new ArrayList<>(); int n = nums.length; for (int i = 0, j; i < n; i = j + 1) { j = i; while (j + 1 < n && nums[j + 1] == nums[j] + 1) ++j; ans.add(i == j ? String.valueOf(nums[i]) : String.format("%d->%d", nums[i], nums[j])); } return ans; & ...
LC.P236[二叉树的最近公共祖先]
发表于2023-08-25|更新于2023-08-25|LeetCode|DFS•树•回溯•二叉树
LC.P236[二叉树的最近公共祖先] 方法一:DFS+回溯1234567891011121314151617181920212223242526272829303132/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { List<TreeNode> a = new ArrayList<>(), b = new ArrayList<>(); dfs(root, p, a); dfs( ...
1…212223…59
avatar
byu_rself
努力努力!
文章
590
标签
104
分类
17
Follow Me
最新文章
LC.P416[分割等和子集]2025-04-07
LC.P2874[有序三元组中的最大值II]2025-04-02
LC.P3128[直角三角形]2024-08-02
LCP.P40[心算挑战]2024-08-01
LC.P3115[质数的最大距离]2024-07-02
分类
  • LeetCode546
    • LCP4
    • LCR13
    • 剑指Offer13
    • 面试题2
  • Linux3
  • 后端9
    • CompletableFuture1
标签
GitDFSGolang动态规划记忆化搜索字符串栈数学数组哈希表滑动窗口链表递归图BFS多源BFS双指针树子数组前缀和前缀树字典树Trie子序列区间DP递推模拟枚举字符串哈希二分查找贪心排序负二进制回溯二叉树状态压缩子串迭代随机化后缀和
归档
  • 四月 20252
  • 八月 20242
  • 七月 20241
  • 五月 20243
  • 四月 20242
  • 三月 202410
  • 二月 202410
  • 一月 202414
网站资讯
文章数目 :
590
已运行时间 :
824 天
本站总字数 :
289.3k
本站访客数 :
48409
本站总访问量 :
49557
最后更新时间 :
2 个月前
©2023 - 2025 By byu_rself
框架 Hexo|主题 Butterfly
Hi, welcome to my blog!
搜索
数据库加载中