摘要: 题目 贪心+二分 很容易将这道题转化为求最长递增子序列。这道题n的范围比较大,O(n^2)的时间复杂度会超时,所以不能使用dp,而应该用贪心+二分。唯一的难点在于xi等于xj该怎么办。 public class Main { public static void main(String[] args 阅读全文
posted @ 2022-03-02 21:50 归鸿唱晚 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题目 扫描线算法 这里需要遍历所有日期,题目中日期范围是1 ⇐ events[i][0] ⇐ events[i][1] ⇐ 10^5,那么就遍历这些日期,逐个日期去判断当前日期是否可以参加会议。 public int maxEvents(int[][] events) { int res=0,eve 阅读全文
posted @ 2021-11-17 02:25 归鸿唱晚 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 二分法 看题目给出的范围,O(n^2)的时间复杂度肯定会超时,O(n)时间复杂度的算法又没思路,这个时候不妨试试O(n*logn)的时间复杂度,也即利用二分法。 不得感叹二分法的强大,这也为暴力搜索提供了一种新的思路————即利用二分法将结果试出来。 具体到这题的做法就是利用二分法在1到1e5的范围 阅读全文
posted @ 2021-11-07 12:29 归鸿唱晚 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 回溯 static Set<Integer> set=new HashSet<>(); static{ for(int i=1;i<=(int)1e9;i*=2) set.add(i); } private int[] cnt=new int[10]; private int len; privat 阅读全文
posted @ 2021-10-28 13:09 归鸿唱晚 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 回溯 预处理: 1.计算累加和s,如果s%k!=0,返回false。 2.按从小到大给数组排序。 准备k个桶,每个桶的容量为s/k。遍历数组,尝试将当前元素添加到每个桶中,如果所有所有桶都放不下则返回false。如果能遍历完数组则返回true。 数组排序是一种优化操作,如果当前元素都没有桶可以放得下 阅读全文
posted @ 2021-10-27 19:44 归鸿唱晚 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 从左下角位置开始搜索 时间复杂度:O(行数+列数)。 想法有点像二分法,大了往一个方向找,小了往另一个方向找。由于矩阵横向和纵向都是递增,如果从(0,0)位置开始找,往右和往下都是增大,因此不知道实际上要往哪个方向找。但是如果以左下角位置为搜索起点,则向右是递增,向上是递减,就可以用类似二分法的方式 阅读全文
posted @ 2021-10-25 20:07 归鸿唱晚 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 题目 城市用一个 双向连通 图表示,图中有 n 个节点,从 1 到 n 编号(包含 1 和 n)。图中的边用一个二维整数数组 edges 表示,其中每个 edges[i] = [ui, vi] 表示一条节点 ui 和节点 vi 之间的双向连通边。每组节点对由 最多一条 边连通,顶点不存在连接到自身的 阅读全文
posted @ 2021-10-17 22:47 归鸿唱晚 阅读(76) 评论(0) 推荐(0) 编辑
摘要: spilt方法作用 以所有匹配regex的子串为分隔符,将input划分为多个子串。 例如: The input "boo:and:foo", for example, yields the following results with these expressions: Regex Result 阅读全文
posted @ 2021-10-07 17:15 归鸿唱晚 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 题目 给你一个字符串 s ,由 n 个字符组成,每个字符不是 'X' 就是 'O' 。 一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都转换为 'O' 。注意,如果字符已经是 'O' ,只需要保持 不变 。 返回将 s 中所有字符均转换为 'O' 需要执行的 最少 操作次数。 示 阅读全文
posted @ 2021-10-03 13:53 归鸿唱晚 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。 注意: 十六进制中所有字母(a-f)都必须是小写。 十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符'0'来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。 给定的 阅读全文
posted @ 2021-10-02 21:41 归鸿唱晚 阅读(217) 评论(0) 推荐(0) 编辑