![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
风中跌倒丿不为风
来自南方的少年,现供职于省气象局,从事深度学习气象灾害预警。
展开
-
leetcode刷题笔记:讯在峰值
啥也不说了,就是一个二分法;找中间值,然后先判断mid和mid+1的大小,mid<mid+1递归search(nums,mid+1,r);反之亦然。 public class Solution { public int findPeakElement(int[] nums) { return search(nums,0,nums.length-1); } private int search(int[] nums,int l,int r){原创 2020-06-17 17:07:39 · 123 阅读 · 0 评论 -
linux学习笔记2020616:软件包管理,校检和文件管理
linux中能识别的两种包: 源码包(c语言),二进制包(rpm,系统安装包)现在基本安装这个。 一般用二进制包,因为不用像源码包那样去编译。 rpm包管理 在这里插入图片描述 但是用rpm命令超级麻烦,因为安装会有很多个依赖 所以就用yum命令 rpm的查询是一个非常常用的方法! 这个rpm查询不一定要进入安装依赖的路径,在任何位置依然可以查询已安装的依赖或者包 也可以在rpm -qa后面加一个管道符| 查询包含有httpd字符的包 重点:安装和升级不能用包名,而是要用包全名! 注意:查询属原创 2020-06-16 13:21:20 · 174 阅读 · 0 评论 -
leetcode刷题笔记,和为 K 的最少斐波那契数字数目
class Solution { public int findMinFibonacciNumbers(int k) { List list = new ArrayList<>(); list.add(1); list.add(1); int tmp = 0, res = 0; while (tmp <= k){ int size = list.size(); tmp = list.get(size - 1) + list.get(size - 2); list.add(tmp); } .原创 2020-06-15 12:01:00 · 152 阅读 · 0 评论 -
leetcode刷题笔记,缺失第一个正数
采用bitmap算法 1、根据题目要求,最终结果肯定是1至n+1中的一个数; 2、处理特殊情况,数组中没有1,数组长度为1; 3、把小于1和大于n的不符合规范的转化为1; 4、根据数组的值,把值对应的下标的数标记为负数; 5、最后循环判断值的正负。 class Solution { public int firstMissingPositive(int[] nums) { //处理数组长度为1的特殊情况 if (nums.length == 1) { .原创 2020-06-14 16:20:39 · 139 阅读 · 0 评论 -
leetcode刷题笔记,岛屿最大面积问题
思路,深度优先遍历法,遍历过后把原位置置为0.防止再次遍历原创 2020-06-13 12:19:42 · 278 阅读 · 0 评论 -
leetcode刷题笔记,0~n-1中缺失的数字
题目描述: 二分法,根据对应索引,判断分解 class Solution{ public int missingNumber(int nums[]){ int i = 0; int j=nums.length; while(i<=j){ int m = (i+j)/2; if(nums[m]==m) i= m+1; else j= m-1; } return i; } ...原创 2020-06-11 20:01:36 · 149 阅读 · 0 评论 -
leetcode刷题笔记,高度检查器
class Solution { public int heightChecker(int[] heights) { //设置一个桶数组arr长度为101 int[] arr = new int[101]; for(int height:heights){//增强for循环,可理解为遍历heights中的数值,height从0开始计数 arr[height]++; } int count= 0;原创 2020-06-08 20:41:10 · 198 阅读 · 0 评论 -
leetcode刷题笔记,递减元素使数组呈锯齿状
代码引自leetcode题解库,我算是一个新手,先看懂代码为主。 代码作者:slowbird class Solution { public int movesToMakeZigzag(int[] nums) { if (null == nums || nums.length == 0) return -1; if (nums.length == 1) return 0; // gap 表示当前元素与相邻元素的差值 /原创 2020-06-05 18:00:37 · 135 阅读 · 0 评论 -
leetcode刷题笔记:井字游戏
代码转自leetcode官方题库,作者:a_good_start class Solution { public String tictactoe(String[] board) { boolean fill = true;//判断是否填满 boolean duijiao1 = board[0].charAt(0) == ' '?false:true; boolean duijiao2 = board[0].charAt(board.length -原创 2020-06-04 22:35:06 · 459 阅读 · 0 评论 -
leetcode刷题笔记,大小为 K 且平均值大于等于阈值的子数组数目
class Solution { public static int numOfSubarrays(int[] arr, int k, int threshold) { int sum = 0 ,account=0; int sumTarget = k*threshold; for (int i = 0; i < k; i++) { sum += arr[i]; } int adder = sum.原创 2020-06-04 18:27:49 · 203 阅读 · 0 评论 -
leetcode刷题笔记,将连续数组转换为平衡二叉树
该代码转自leetcode官方; 首先,TreeNode结构为: public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } 看了半天,终于把它看懂了,首先生成的结果 这是这个算法的答案。根据答案构建二叉树: 由答案给出的顺序根据算法可以得出,递归更深层次的含义: 1.首先第一个结果为0,毫无疑问,由下面的代码得出: int p= (left+right)/2 TreeNode原创 2020-06-02 18:07:10 · 226 阅读 · 0 评论 -
leetcode刷题笔记,最大连续子数组之和
思路: max和now都指向数组的第一个元素,然后通过for循环依次更新max的值,now记录之前值累加和。然后now每加一次更新值以后就和max相比较,当now>max时,用now值更新max,若now<max,则max保持不变。 循环结束,max就为最大子序和。 ...原创 2020-05-30 21:16:08 · 110 阅读 · 0 评论