自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

信仰.的博客

学无止境

  • 博客(66)
  • 收藏
  • 关注

原创 JAVA程序设计:完美矩形(LeetCode:391)

我们有 N 个与坐标轴对齐的矩形, 其中 N > 0, 判断它们是否能精确地覆盖一个矩形区域。每个矩形用左下角的点和右上角的点的坐标来表示。例如,一个单位正方形可以表示为 [1,1,2,2]。( 左下角的点的坐标为 (1, 1) 以及右上角的点的坐标为 (2, 2) )。示例 1:rectangles = [ [1,1,3,3], [3,1,4,2], [3,2,...

2019-10-31 22:54:35 519

原创 java:Object类

Object类是java所有类的始祖,在java中每个类都是由它扩展而来的,但是并不需要这样写:public class Employee extends Object如果没有明确的指出超类,Object就被认为是这个类的超类。我们可以使用Object类型的变量引用任何类型的对象:Object obj=new Employee("ykc",300000);当然,Object...

2019-10-31 20:05:47 292

原创 JAVA程序设计:文件的最长绝对路径(LeetCode:388)

假设我们以下述方式将我们的文件系统抽象成一个字符串:字符串"dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext" 表示:dir subdir1 subdir2 file.ext目录dir 包含一个空的子目录subdir1 和一个包含一个文件file.ext的子目录subdir2 。字符串"dir\n\tsubd...

2019-10-31 10:03:21 421

原创 JAVA程序设计:迷你语法分析器(LeetCode:385)

给定一个用字符串表示的整数的嵌套列表,实现一个解析它的语法分析器。列表中的每个元素只可能是整数或整数嵌套列表提示:你可以假定这些字符串都是格式良好的:字符串非空字符串不包含空格字符串只包含数字0-9, [, - ,, ]思路:我们采用栈模拟存储nestedInteger的过程即可。class Solution { public NestedInteger deseria...

2019-10-30 09:29:19 392

原创 JAVA程序设计:链表随机节点(LeetCode:382)

给定一个单链表,随机选择链表的一个节点,并返回相应的节点值。保证每个节点被选的概率一样。进阶:如果链表十分大且长度未知,如何解决这个问题?你能否使用常数级空间复杂度实现?示例:// 初始化一个单链表 [1,2,3].ListNode head = new ListNode(1);head.next = new ListNode(2);head.next.next = new L...

2019-10-28 19:09:28 410

原创 LeetCode第160场周赛:5241. 铺瓷砖(动态规划)

你是一位施工队的工长,根据设计师的要求准备为一套设计风格独特的房子进行室内装修。房子的客厅大小为nxm,为保持极简的风格,需要使用尽可能少的正方形瓷砖来铺盖地面。假设正方形瓷砖的规格不限,边长都是整数。请你帮设计师计算一下,最少需要用到多少块方形瓷砖?示例 1:输入:n = 2, m = 3输出:3解释:3 块地砖就可以铺满卧室。 2 块 1...

2019-10-27 14:27:41 1560

原创 JAVA程序设计:常数时间插入、删除和获取随机元素(LeetCode:380)

设计一个支持在平均时间复杂度 O(1)下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。示例 :// 初始化一个空的集合。RandomizedSet randomSet = new Rando...

2019-10-26 14:37:27 264

原创 java:日期类

利用localdate类编写一个简单程序,生成一个日历,并且对当前的日期打星其输出结果如下图所示:class Solution { public static void main(String[] args) { LocalDate date=LocalDate.now(); int month=date.getMonthValue(); int today=date....

2019-10-25 20:28:34 245

原创 JAVA程序设计: 组合总和 Ⅳ(LeetCode:377)

给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。示例:nums = [1, 2, 3]target = 4所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。因此输出为 7。进阶:如果给定的数组中含有负数会怎...

2019-10-25 19:56:07 354

原创 JAVA程序设计: 摆动序列(LeetCode:376)

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如,[1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3)是正负交替出现的。相反, [1,4,7,2,5]和[1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个...

2019-10-25 15:25:24 645 2

原创 JAVA程序设计: 猜数字大小 II(LeetCode:375)

我们正在玩一个猜数游戏,游戏规则如下:我从1到 n 之间选择一个数字,你来猜我选了哪个数字。每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了。然而,当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。直到你猜到我选的数字,你才算赢得了这个游戏。示例:n = 10, 我选择了8.第一轮: 你猜我选择的数字是5,我会告诉你,我的数字更大一些,然后你需要...

2019-10-25 09:53:12 684

原创 JAVA程序设计: 查找和最小的K对数字(LeetCode:373)

给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。定义一对值(u,v),其中第一个元素来自nums1,第二个元素来自 nums2。找到和最小的 k 对数字(u1,v1), (u2,v2) ... (uk,vk)。示例 1:输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,2],[1,4],[1,...

2019-10-24 18:18:40 524

原创 JAVA程序设计: 超级次方(LeetCode:372)

你的任务是计算a^b对1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。示例 1:输入: a = 2, b = [3]输出: 8示例2:输入: a = 2, b = [1,0]输出: 1024思路:典型的降幂公式算法,回顾了一下以前学过的降幂公式。不懂的人可以看我这篇详解:降幂公式讲解class Solution { pu...

2019-10-24 09:30:55 468

原创 java:大数值

大数值 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的分类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。 使用静态的valueOf方法可以将普通的数值转化为大数值: ...

2019-10-23 21:00:27 316

原创 JAVA程序设计: 两整数之和(LeetCode:371)

不使用运算符+ 和-,计算两整数​​​​​​​a、b​​​​​​​之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1思路:因为不能使用加减运算符,因此我们需要考虑下位运算,我们知道两数的异或和是不带进位的加法,因此我们可以先把进位存起来呀,这样我们异或后再加上进位就好了。class Solutio...

2019-10-23 18:54:58 356

原创 JAVA程序设计: 最大整除子集(LeetCode:368)

给出一个由无重复的正整数组成的集合,找出其中最大的整除子集,子集中任意一对 (Si,Sj) 都要满足:Si % Sj = 0 或 Sj % Si = 0。如果有多个目标子集,返回其中任何一个均可。示例 1:输入: [1,2,3]输出: [1,2] (当然, [1,3] 也正确)示例 2:输入: [1,2,4,8]输出: [1,2,4,8]思路:定义一个map存当前元...

2019-10-23 11:54:35 370

原创 JAVA程序设计: 水壶问题(LeetCode:365)

有两个容量分别为x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的z升水。你允许:装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空示例 1: (From the famous "Die Hard" example)输入: x = 3, y = ...

2019-10-23 09:21:02 1181

原创 JAVA程序设计: 计算各个位数不同的数字个数(LeetCode:357)

给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n。示例:输入: 2输出: 91解释: 答案应为除去 11,22,33,44,55,66,77,88,99 外,在 [0,100) 区间内的所有数字。思路:附上我在LeetCode上写的题解,思路非常清晰、代码简介。class Solution { public int c...

2019-10-22 21:12:12 495

原创 JAVA程序设计: 设计推特(LeetCode:355)

设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文。你的设计需要支持以下的几个功能:postTweet(userId, tweetId): 创建一条新的推文getNewsFeed(userId): 检索最近的十条推文。每个推文都必须是由此用户关注的人或者是用户自己发出的。推文必须按照时间顺序由最近的开始排序。fo...

2019-10-22 18:52:48 477

原创 JAVA程序设计: 俄罗斯套娃信封问题(LeetCode:354)

给定一些标记了宽度和高度的信封,宽度和高度以整数对形式(w, h)出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。示例:输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]输出...

2019-10-21 22:43:42 658

原创 java:strictfp关键字

strictfp也即strictfloatpoint(精确浮点)该关键字可应用于类、接口或者方法。当我们对一个类或者接口使用strictfp关键字时,该类中的所有代码,包括嵌套类型中的初始设定值和代码,都将严格地进行计算。严格约束意味着所有表达式的结果都必须是IEEE754算法对操作数预期的结果,以单精度和双精度格式表示。备注:如果你想让你的浮点运算更加精确,而且不会因为不同的硬件平...

2019-10-21 22:01:47 371

原创 LeetCode第159场周赛:5233. 规划兼职工作(离散化)

你打算利用空闲时间来做兼职工作赚些零花钱。这里有n份兼职工作,每份工作预计从startTime[i]开始到endTime[i]结束,报酬为profit[i]。给你一份兼职工作表,包含开始时间startTime,结束时间endTime和预计报酬profit三个数组,请你计算并返回可以获得的最大报酬。注意,时间上出现重叠的 2 份工作不能同时进行。如果你选择的工...

2019-10-21 17:32:04 399

原创 第 11 场双周赛-5111. 分享巧克力(二分答案)

你有一大块巧克力,它由一些甜度不完全相同的小块组成。我们用数组sweetness来表示每一小块的甜度。你打算和K名朋友一起分享这块巧克力,所以你需要将切割K次才能得到K+1块,每一块都由一些连续的小块组成。为了表现出你的慷慨,你将会吃掉总甜度最小的一块,并将其余几块分给你的朋友们。请找出一个最佳的切割策略,使得你所分得的巧克力总甜度最大,并返回这个最大总甜度...

2019-10-20 17:29:08 5792

原创 第 11 场双周赛-5090. 抛掷硬币(概率DP)

有一些不规则的硬币。在这些硬币中,prob[i]表示第i枚硬币正面朝上的概率。请对每一枚硬币抛掷一次,然后返回正面朝上的硬币数等于target的概率。示例 1:输入:prob = [0.4], target = 1输出:0.40000示例 2:输入:prob = [0.5,0.5,0.5,0.5,0.5], target = 0输出:0.03125...

2019-10-20 15:50:39 224

原创 第 11 场双周赛-5089. 安排会议日程(双指针)

你是一名行政助理,手里有两位客户的空闲时间表:slots1和slots2,以及会议的预计持续时间duration,请你为他们安排合适的会议时间。「会议时间」是两位客户都有空参加,并且持续时间能够满足预计时间duration的最早的时间间隔。如果没有满足要求的会议时间,就请返回一个空数组。「空闲时间」的格式是[start, end],由开始时间start和结束时...

2019-10-20 15:12:09 244

原创 JAVA程序设计: 前 K 个高频元素(LeetCode:347)

给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) ,n是数组的大小。...

2019-10-19 12:10:29 309

原创 JAVA程序设计: 4的幂(LeetCode:342)

给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4的幂次方。示例 1:输入: 16输出: true示例 2:输入: 5输出: false进阶:你能不使用循环或者递归来完成本题吗?思路:循环肯定无脑的,但是循环的话就浪费了这道题了,我们需要采用一些骚方法,首先我们知道4的幂一定是2的幂,所以我们要先判断这个数是不是2的幂,之后我们让这个数和101010...

2019-10-18 21:27:38 439

原创 JAVA程序设计: 扁平化嵌套列表迭代器(LeetCode:341)

给定一个嵌套的整型列表。设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的项或者为一个整数,或者是另一个列表。示例 1:输入: [[1,1],2,[1,1]]输出: [1,1,2,1,1]解释: 通过重复调用next 直到hasNext 返回false,next返回的元素的顺序应该是: [1,1,2,1,1]。示例 2:输入: [1,[4,[6]]]输出:...

2019-10-18 21:04:12 416

原创 C++:数组指针和指针数组

int main(void){ int a;//一个整型数 int *b;//一个指向整型数的指针 int **c;//一个指向指针的指针,他指向的指针是指向一个整数 int d[10];//一个有10个整型数的数组 int *e[10];//一个有10个指针的数组,该指针是指向一个整型数的 int (*f)[10];//一个指向有10个整型数数组的指针 int *g(int);...

2019-10-18 20:33:38 197

原创 JAVA程序设计: 比特位计数(LeetCode:338)

给定一个非负整数num。对于0 ≤ i ≤ num 范围中的每个数字i,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要求算法的空间复杂度为...

2019-10-18 09:54:37 206

原创 JAVA程序设计: 打家劫舍 III(LeetCode:337)

在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,...

2019-10-18 09:37:22 288

原创 Java 反射

Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。能够分析类能力的程序成为反射。反射机制的功能极其强大。反射机制可以用来:1.在运行时分析类的能力2.在运行时查看对象,列如:编写一个toString方法供所有类使用3.实现通用的...

2019-10-17 21:20:35 284

原创 JAVA程序设计: 路径交叉(LeetCode:335)

给定一个含有n个正数的数组x。从点(0,0)开始,先向北移动x[0]米,然后向西移动x[1]米,向南移动x[2]米,向东移动x[3]米,持续移动。也就是说,每次移动后你的方位会发生逆时针变化。编写一个O(1)空间复杂度的一趟扫描算法,判断你所经过的路径是否相交。示例1:┌───┐│ │└───┼──>│输入: [2,1,...

2019-10-17 11:49:27 288

原创 JAVA程序设计:递增的三元子序列(LeetCode:334)

给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。数学表达式如下:如果存在这样的i, j, k,且满足0 ≤ i < j < k ≤ n-1,使得arr[i] < arr[j] < arr[k] ,返回 true ;否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。示例 1:输入:...

2019-10-17 10:42:52 288

原创 JAVA程序设计:重新安排行程(LeetCode:332)

给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 出发。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前...

2019-10-17 10:02:08 600

原创 JAVA程序设计:验证二叉树的前序序列化(LeetCode:331)

序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 _9_ / \ 3 2 / \ / \4 1 # 6/ \ / \ / \# # # # # #例如,上面的二叉树可以被序列化为字符串 "9,3,4,#,#,1,#,#,2,#...

2019-10-16 10:51:45 315

原创 JAVA程序设计:按要求补齐数组(LeetCode:330)

给定一个已排序的正整数数组 nums,和一个正整数n 。从[1, n]区间内选取任意个数字补充到nums中,使得[1, n]区间内的任何数字都可以用nums中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。示例1:输入: nums = [1,3], n = 6输出: 1解释:根据 nums里现有的组合[1], [3], [1,3],可以得出...

2019-10-16 10:01:23 444

原创 JAVA程序设计:矩阵中的最长递增路径(LeetCode:329)

给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[ [9,9,4], [6,6,8], [2,1,1]]输出: 4解释: 最长递增路径为[1, 2, 6, 9]。示例 2:输入: nums =[ [3,4,5],...

2019-10-16 09:06:14 441

原创 JAVA程序设计:奇偶链表(LeetCode:328)

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2...

2019-10-15 22:51:16 266

原创 C++语言程序设计:区间和的个数(LeetCode:327)

给定一个整数数组nums,返回区间和在[lower, upper]之间的个数,包含lower和upper。区间和S(i, j)表示在nums中,位置从i到j的元素之和,包含i和j(i ≤ j)。说明:最直观的算法复杂度是O(n2) ,请在此基础上优化你的算法。示例:输入: nums = [-2,5,-1], lower = -2, upper ...

2019-10-15 22:30:53 1313

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除