java
badbeat
这个作者很懒,什么都没留下…
展开
-
628. 三个数的最大乘积
题目链接:https://leetcode-cn.com/problems/maximum-product-of-three-numbers/给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。##########原创 2020-08-10 11:24:38 · 142 阅读 · 0 评论 -
598. 范围求和 II——思路很关键!
来源:https://leetcode-cn.com/problems/range-addition-ii/给定一个初始元素全部为0,大小为 m*n 的矩阵M以及在M上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数a 和 b 的数组表示,含义是将所有符合0 <= i < a 以及 0 <= j < b 的元素M[i][j]的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。示例 1:输入:...原创 2020-08-06 18:23:49 · 128 阅读 · 0 评论 -
581. 最短无序连续子数组——以其求思之深而无不在也!
题目链接:https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :输入的数原创 2020-08-04 09:49:07 · 133 阅读 · 0 评论 -
563. 二叉树的坡度
题目链接:https://leetcode-cn.com/problems/binary-tree-tilt/给定一个二叉树,计算整个树的坡度。一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。整个树的坡度就是其所有节点的坡度之和。示例:输入: 1 / \ 2 3输出:1解释:结点 2 的坡度: 0结点 3 的坡度: 0结点 1 的坡度: |2-3| = 1树的坡度 : ...原创 2020-08-03 15:08:26 · 125 阅读 · 0 评论 -
543. 二叉树的直径
题目链接:https://leetcode-cn.com/problems/diameter-of-binary-tree/给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回3, 它的长度是路径 [4,2,1,3] 或者[5,2,1,3]。..原创 2020-07-30 10:57:43 · 90 阅读 · 0 评论 -
530. 二叉搜索树的最小绝对差
题目链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/530. 二叉搜索树的最小绝对差难度简单123给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:输入: 1 \ 3 / 2输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。#################原创 2020-07-29 14:01:58 · 168 阅读 · 0 评论 -
506. 相对名次
题目链接:https://leetcode-cn.com/problems/relative-ranks/给出N 名运动员的成绩,找出他们的相对名次并授予前三名对应的奖牌。前三名运动员将会被分别授予 “金牌”,“银牌” 和“ 铜牌”("Gold Medal", "Silver Medal", "Bronze Medal")。(注:分数越高的选手,排名越靠前。)示例 1:输入: [5, 4, 3, 2, 1]输出: ["Gold Medal", "Silver Medal", "Bronz.原创 2020-07-28 18:43:14 · 113 阅读 · 0 评论 -
501. 二叉搜索树中的众数
题目链接:https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 例如:给定 BST[1,null,2,2],1\2/2返回[2].原创 2020-07-27 13:39:48 · 77 阅读 · 1 评论 -
492. 构造矩形
题目链接:https://leetcode-cn.com/problems/construct-the-rectangle/作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:1. 你设计的矩形页面必须等于给定的目标面积。2. 宽度 W 不应大于长度 L,换言之,要求 L >= W 。3. 长度 L 和宽度 W 之间的差距应当尽可能小。你需要按顺序输出你设计的页原创 2020-07-24 17:56:24 · 115 阅读 · 0 评论 -
475. 供暖器
题目链接:https://leetcode-cn.com/problems/heaters/冬季已经来临。你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖。现在,给出位于一条水平线上的房屋和供暖器的位置,找到可以覆盖所有房屋的最小加热半径。所以,你的输入将会是房屋和供暖器的位置。你将输出供暖器的最小加热半径。说明:给出的房屋和供暖器的数目是非负数且不会超过 25000。给出的房屋和供暖器的位置均是非负数且不会超过10^9。只要房屋位于供暖器的半径内(包括在边缘上),它就可以得.原创 2020-07-23 09:28:54 · 153 阅读 · 0 评论 -
463. 岛屿的周长
题目来源:https://leetcode-cn.com/problems/island-perimeter/给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示.原创 2020-07-22 11:04:34 · 101 阅读 · 0 评论 -
448. 找到所有数组中消失的数字——list删除元素的方法+原地修改
题目来源:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/给定一个范围在1 ≤ a[i] ≤ n (n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,...原创 2020-07-21 10:38:00 · 129 阅读 · 0 评论 -
441. 排列硬币
题目链接:https://leetcode-cn.com/problems/arranging-coins/你总共有n枚硬币,你需要将它们摆成一个阶梯形状,第k行就必须正好有k枚硬币。给定一个数字n,找出可形成完整阶梯行的总行数。n是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤¤ ¤ ¤¤ ¤因为第四...原创 2020-07-20 15:06:44 · 159 阅读 · 0 评论 -
404. 左叶子之和
题目来源:https://leetcode-cn.com/problems/sum-of-left-leaves/计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24class Solution { public int sumOfLeftLeaves(TreeNode root) { if(root==null){ ...原创 2020-07-16 13:51:13 · 76 阅读 · 0 评论 -
371. 两整数之和a+b——神奇的位运算
题目来源:https://leetcode-cn.com/problems/sum-of-two-integers/不使用运算符+ 和-,计算两整数a、b之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1直接上答案吧,我勉强能理解:a^b是每位相加,但是不算进位。(a&b)<<1是进位值,这两个加起来就是结果了,循环到进位值为0时,不算进位值为结果。c...原创 2020-07-15 18:18:36 · 155 阅读 · 0 评论 -
383. 赎金信——似曾相识的一道题
题目来源:https://leetcode-cn.com/problems/ransom-note/给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)注意:你可以假设两个字符串均只.原创 2020-07-14 18:07:47 · 88 阅读 · 0 评论 -
349. 两个数组的交集——集合的交集、并集和差集+集合的遍历
题目来源:https://leetcode-cn.com/problems/intersection-of-two-arrays/给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。#############..原创 2020-07-13 11:35:08 · 1000 阅读 · 0 评论 -
力扣292Nim——观察法
题目来源:https://leetcode-cn.com/problems/nim-game你和你的朋友,两个人一起玩Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3 块石头,最...原创 2020-07-10 11:49:32 · 133 阅读 · 0 评论 -
力扣274. H 指数——思路很重要!
题目链接:https://leetcode-cn.com/problems/h-index/一道中等难度的题,用了十几分钟时间,一次通过,感觉自己的思路还是可以的!激动ing!从6月1号开始做题,到昨天正好做了50道题了,绝大多数是简单难度,在做题的过程中,发现一个大问题是基础知识的欠缺,java最基础的map、list、set操作、数组、字符串等等,这些东西就是工具。当看到一道题的时候,如果能有点思路,就利用这些工具,把思路“翻译”成代码就ok了。需要学习的还有很多,做题过程中也留下很多坑,比如树原创 2020-07-08 10:47:21 · 329 阅读 · 0 评论 -
力扣268. 缺失数字——利用高斯求和公式!
题目链接:https://leetcode-cn.com/problems/missing-number/给定一个包含 0, 1, 2, ..., n中n个数的序列,找出 0 .. n中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?***************************************...原创 2020-07-08 10:17:23 · 264 阅读 · 0 评论 -
234回文链表——ArrayList中的get()自动装箱
题目来自力扣官网:https://leetcode-cn.com/problems/palindrome-linked-list/请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题?——————分割线——————我还是思考了这个进阶的,On所以只能遍历一遍,O1不能开额外的链表。感觉这道题特别像之前博客中写.原创 2020-07-07 10:13:52 · 286 阅读 · 0 评论 -
一道很有成就感的题——删除链表中的节点
题目来源:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/跟上次的删除节点不一样的是,没有给出head,直接上代码吧:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */cl原创 2020-07-06 14:50:15 · 108 阅读 · 0 评论 -
leetcode203链表删除元素——初识java链表的操作
题目来自力扣官网: https://leetcode-cn.com/problems/remove-linked-list-elements/删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5/***Definitionforsingly-linkedlist.*publicclassListNode{...原创 2020-07-03 10:51:10 · 106 阅读 · 0 评论 -
leetcode191位1的个数——java中的位运算
题目来源:https://leetcode-cn.com/problems/number-of-1-bits/编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011中,共有三位为 '1'。示例 2:输入:000000000000000000000000100...原创 2020-07-02 09:49:12 · 167 阅读 · 0 评论 -
java中String类型初探
最近做leetcode题目遇到了超内存的问题,发现代码中循环里使用了String拼接,创建了大量的对象,可以考虑使用可变字符串类型,几种类型对比如下: String StringBuilder StringBuffer 不可变 可变 可变 线程不安全 线程安全 1.为什么String类型不可变呢?publi.原创 2020-06-23 11:49:23 · 123 阅读 · 0 评论 -
一道面试题:hashmap的使用场景
前一阵子遇到一道面试题,hashmap的使用场景,顿时有点蒙蔽,因为只是了解hashmap的基本原理,却没有实际的使用经验。今天在看leetcode第一题答案的时候发现一个很强的答案就用到了hashmap。题目描述(粘贴自力扣网站):###给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15...原创 2020-06-01 18:11:17 · 6684 阅读 · 0 评论 -
冒泡排序与选择排序
public class MP_SORT { public static int[] mppx(int[] a){ int l=a.length; //把最小的排在最后一位,降序 for(int i=0;i<l;i++){ for(int j=0;j<l-i-1;j++){ ...原创 2019-08-19 16:57:47 · 119 阅读 · 0 评论