LeetCode算法
每周3道算法题
我不配编程
这个作者很懒,什么都没留下…
展开
-
Java中数组的排序
因为升序排序在很多地方是默认的,这里主要总结下把一个数组降序排序 一、首先来两种自己写的排序: int[] anss=Arrays.copyOfRange(arr, l, r+1); /** * 冒泡降序 */ for(int i=1;i<anss.length;i++){//注意i的初始值,取1可防止后面anss[j+1]越界 for(int j=0;j<anss.length-i;j++){ if (anss[j]<anss[j+1]) {原创 2020-05-08 20:27:53 · 286 阅读 · 0 评论 -
DFS
蓝桥练习–PREV-53(分考场) n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。 输入格式 第一行,一个整数n(1<n<100),表示参加考试的人数。 第二行,一个整数m,表示接下来有m行数据 以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第b个...原创 2020-05-05 20:54:07 · 177 阅读 · 0 评论 -
二分法
二分法 数学中的二分法我们都学过,但是运用到这我就忘了,程序中的二分法是起源于数学中的函数找零点,假设待查找序列和题目的要求之间的关系是单调递增的,先取区间的中心,判断该处函数值和题目标准值的大小关系,如果函数值偏小,那么应该在中心右侧的区间继续查找;如果函数值偏大 ,那么应该在中心左侧区间继续查找,直到找到对应的值或者区间缩小到左右端点之间不再包含其他数据结束。 这样一段代码:我们都能看懂什么意...原创 2019-12-07 11:51:12 · 163 阅读 · 0 评论 -
二分法
讲得很详细,转自:力扣大佬 我相信对很多读者朋友来说,编写二分查找的算法代码属于玄学编程,虽然看起来很简单,就是会出错,要么会漏个等号,要么少加个 1。 不要气馁,因为二分查找其实并不简单。看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的: Although the basic idea of binary search is comparatively straightforward...转载 2019-12-06 14:35:32 · 117 阅读 · 0 评论 -
滑动窗口算法
904、水果成蓝 在一排树中,第 i 棵树产生 tree[i] 型的水果。 你可以从你选择的任何树开始,然后重复执行以下步骤: 把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。 移动到当前树右侧的下一棵树。如果右边没有树,就停下来。 请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止。 你有两个篮子,每个篮子...原创 2019-11-29 17:08:24 · 129 阅读 · 0 评论 -
操作字符串算法
3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重...原创 2019-11-22 19:39:38 · 101 阅读 · 0 评论 -
回溯算法题
题目: 78、求子集: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路分析 一、迭代: 对于[1,2,3] 初始化: res=[]res=...原创 2019-11-16 13:45:34 · 220 阅读 · 0 评论