
贪心算法
zjc4j
打工人
展开
-
划分字母区间
题目题源代码class Solution { public List<Integer> partitionLabels(String s) { int[] lastIndexsOfChar = new int[26]; for (int i = 0; i < s.length(); i++) { lastIndexsOfChar[s.charAt(i) - 'a'] = i;// 保存字符串中每个字符出现的最后一个位置原创 2021-09-06 15:08:42 · 101 阅读 · 0 评论 -
非递减数列
题目题源代码class Solution { public boolean checkPossibility(int[] nums) { int count = 0; for (int i = 1; i < nums.length && count <= 1; i++) { if (nums[i - 1] <= nums[i]) {continue;} count++;原创 2021-09-06 14:09:54 · 95 阅读 · 0 评论 -
判断子序列
题目题源代码class Solution { public boolean isSubsequence(String s, String t) { char[] cs = s.toCharArray(); int index = -1; for (char c : cs) { index = t.indexOf(c, index + 1); if (index == -1) {原创 2021-09-06 13:43:44 · 103 阅读 · 0 评论 -
种花问题(笔试ai考这种类型的题)
题目题源代码class Solution { public boolean canPlaceFlowers(int[] flowerbed, int n) { int len = flowerbed.length; int count = 0; for (int i = 0; i < len && count <= n; i++) { if (flowerbed[i] == 1) {原创 2021-09-06 13:29:40 · 134 阅读 · 0 评论 -
用最少数量的箭引爆气球
题目题源代码class Solution { public int findMinArrowShots(int[][] points) { if (points.length == 0 || points == null) return 0; Arrays.sort(points, new Comparator<int[]>() { @Override public int compare(int[]原创 2021-08-16 11:05:50 · 115 阅读 · 0 评论 -
分配饼干(贪心)
题目题源代码class Solution { public int findContentChildren(int[] g, int[] s) { if (g == null || s == null) return 0; Arrays.sort(g); Arrays.sort(s); int i = 0, j = 0; while (i < g.length && j < s.len原创 2021-08-13 00:46:23 · 123 阅读 · 0 评论 -
不重叠的区间个数
题目题源代码1.先计算最多能组成的不重叠区间个数,然后用区间总个数减去不重叠区间的个数。2.在每次选择中,区间的结尾最为重要,选择的区间结尾越小,留给后面的区间的空间越大,那么后面能够选择的区间个数也就越大。3.按区间的结尾进行排序,每次选择结尾最小,并且和前一个区间不重叠的区间。class Solution { public int eraseOverlapIntervals(int[][] intervals) { if (intervals.length == 0原创 2021-08-13 00:44:14 · 740 阅读 · 0 评论