自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(166)
  • 收藏
  • 关注

原创 Leetcode每日打卡(长久更新) Java, 有没有一起打卡来互关啊

水平太差,做一下力扣,写一些笔记,看看自己能否提高。很多题目不止一种方法,故会放到多种类别里面。

2020-09-11 21:56:09 92

原创 leetcode 1170.比较字符串最小字母出现频次 Java

比较字符串最小字母出现频次题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/compare-strings-by-frequency-of-the-smallest-character/描述我们来定义一个函数 f(s),其中传入参数 s 是一个非空字符串;该函数的功能是统计 s  中(按字典序比较)最小字母的出现频次。例如,若 s = “dcce”,那么 f(s) = 2,

2020-11-24 22:30:47 2

原创 leetcode 525.连续数组 Java

连续数组题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/contiguous-array/描述给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。注意: 给定的二进制数组的长度不会超过50000。示例示例 1:输入: [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:输入: [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具

2020-11-22 17:14:05 6

原创 leetcode 217.存在重复元素 Java

存在重复元素题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/contains-duplicate/描述给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]

2020-11-22 16:52:44

原创 leetcode 819.最常见的单词 Java

最常见的单词题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/most-common-word/描述给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。提示:1 <= 段落长度 <= 10000 <= 禁

2020-11-22 16:47:10

原创 leetcode 706.设计哈希映射 Java

设计哈希映射题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/design-hashmap/描述不使用任何内建的哈希表库设计一个哈希映射具体地说,你的设计应该包含以下的功能put(key, value):向哈希映射中插入(键,值)的数值对。如果键对应的值已经存在,更新这个值。get(key):返回给定的键所对应的值,如果映射中不包含这个键,返回-1。remove(key):如果映射中存在这个键,删除这个数值对。注意:所有的

2020-11-22 09:03:43 3

原创 leetcode 705.设计哈希集合 Java

设计哈希集合题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/design-hashset/描述不使用任何内建的哈希表库设计一个哈希集合具体地说,你的设计应该包含以下的功能add(value):向哈希集合中插入一个值。contains(value) :返回哈希集合中是否存在这个值。remove(value):将给定值从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。注意:所有的值都在 [0, 1000000]的范围内。

2020-11-21 23:39:29

原创 leetcode 1162.地图分析 Java

地图分析题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/as-far-from-land-as-possible/描述你现在手里有一份大小为 N x N 的 网格 grid,上面的每个 单元格 都用 0 和 1 标记好了。其中 0 代表海洋,1 代表陆地,请你找出一个海洋单元格,这个海洋单元格到离它最近的陆地单元格的距离是最大的。我们这里说的距离是「曼哈顿距离」( Manhattan Distance):(x0, y0) 和 (x1,

2020-11-20 15:39:03

原创 leetcode 1161.最大层内元素和 Java

最大层内元素和题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/maximum-level-sum-of-a-binary-tree/描述给你一个二叉树的根节点 root。设根节点位于二叉树的第 1 层,而根节点的子节点位于第 2 层,依此类推。请你找出层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个。提示:树中的节点数介于 1 和 10^4 之间-10^5 <= node.val <=

2020-11-20 14:49:50

原创 leetcode 1160.拼写单词 Java

拼写单词题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/find-words-that-can-be-formed-by-characters/描述给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写(指拼写词汇表中的一个单词)时,chars 中的每个字母都只能

2020-11-20 14:39:38 4

原创 必要掌握的二叉树题目(附OJ链接+Java参考代码)

必须掌握的二叉树题目1.二叉树前序遍历OJ链接描述示例代码递归迭代2.二叉树中序遍历OJ链接描述示例递归迭代3.二叉树后序遍历OJ链接描述示例递归迭代4.相同的树OJ链接描述示例代码5.另一个树的子树OJ链接描述示例代码6.二叉树的最大深度OJ链接描述示例代码7.判断一棵二叉树是否是平衡二叉树OJ链接描述示例代码1.二叉树前序遍历递归与非递归都得会写,建议去OJ自己测一下,如果只是复习,直接看下面代码也行。思路就不写了,OJ链接里有很多优秀的题解,写的通俗易懂有深度。下面的题目同样如此。OJ链接

2020-11-18 00:08:59 73 2

原创 leetcode 387.字符串中的第一个唯一字符 Java

字符串中的第一个唯一字符题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/first-unique-character-in-a-string/描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 提示:你可以假定该字符串只包含小写字母。示例示例:s = "leetcode"返回 0s = "loveleetcode"返回 2初始代码模板class Solution {

2020-11-17 23:21:36 12

原创 leetcode 349.两个数组的交集 Java

两个数组的交集题目链接描述示例初始代码模板代码题目链接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]

2020-11-17 23:16:03 31 1

原创 leetcode 350.两个数组的交集II Java

两个数组的交集II题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/描述给定两个数组,编写一个函数来计算它们的交集。说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。我们可以不考虑输出结果的顺序。进阶:如果给定的数组已经排好序呢?你将如何优化你的算法?如果 nums1 的大小比 nums2 小很多,哪种方法更优?如果 nums2 的元素存

2020-11-17 23:07:37 10

原创 leetcode 205.同构字符串 Java

同构字符串题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/isomorphic-strings/描述给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。说明:你可以假设 s 和 t 具有相同的长度。示例示例 1:输入: s = "egg", t

2020-11-17 22:56:58 9 1

原创 leetcode 692.前K个高频单词 Java

前K个高频单词题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/top-k-frequent-words/description/描述给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。注意:假定 k 总为有效值, 1 ≤ k ≤ 集合元素数。输入的单词均由小写字母组成。 扩展练习:尝试以 O(n log k) 时间复杂度和 O(n

2020-11-14 15:23:59 13

原创 leetcode 658.找到K个最接近的元素 Java

找到K个最接近的元素题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/find-k-closest-elements/描述给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。如果有两个数与 x 的差值一样,优先选择数值较小的那个数。说明:k 的值为正数,且总是小于给定排序数组的长度。数组不为空,且长度不超过 104数组里的每个元素与 x 的绝对值不超过 10

2020-11-14 00:37:27 51

原创 leetcode 165.比较版本号 Java

比较版本号题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/compare-version-numbers/描述比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和 . 字符。 . 字符不代表小数点,而是用于分隔数字序列。例如,2.5 不是“

2020-11-13 23:36:28 14

原创 leetcode 853.车队 Java

车队题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/car-fleet/描述N 辆车沿着一条车道驶向位于 target 英里之外的共同目的地。每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着行驶。此时,我们会忽略这两辆车之间的距离,也就是说,它们被假定处于相同的位置。车队 是

2020-11-13 23:12:27 11

原创 分别用递归和非递归方式实现二叉树线序、中序和后续遍历(必须掌握) --代码基本来自《程序员代码面试指南》

过程和代码来自左神的《程序员代码面试指南》,基本相同,只有细微差别。非常推荐有条件的去购买读一下,很好的一本书。分别用递归和非递归方式实现二叉树先序、中序和后序遍历1.先序遍历 递归2.中序遍历 递归3.后序遍历 递归4.先序遍历 非递归5.中序遍历 非递归6.后序遍历 非递归假设节点类如下:public class Node { public int value; public Node left; public Node right; public Node.

2020-11-13 22:02:36 11

原创 继承的设计技巧 《Java核心技术 卷 I》

本文摘自《Java核心技术 卷 I》第5章继承继承设计技巧1.将公共操作和字段放在超类中2.不要使用受保护的字段3.使用继承实现“is-a”关系4.除非所有继承的方法都有意义,否则不要使用继承5.再覆盖方法时,不要改变预期的行为6.使用多态,而不要使用类型信息7.不要滥用反射1.将公共操作和字段放在超类中2.不要使用受保护的字段有些程序员认为,将大多数的实例字段定义为protected是一个不错的注意,“以防万一”,这样子类就能够在需要的时候访问这些字段。然而,protected机制并不能够带来.

2020-11-12 16:16:44 12

原创 leetcode 283.移动零 Java

移动零题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/move-zeroes/描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。示例输入: [0,1,0,3,12]输出: [1,3,12,0,0]初始代码模板class Solution { public void moveZeroes(int[] n

2020-11-12 15:26:28 7

原创 leetcode 26.删除排序数组中的重复项 Java

删除排序数组中的重复项题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/描述给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递

2020-11-12 15:18:12 9

原创 leetcode 239.滑动窗口最大值 Java

滑动窗口最大值题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/sliding-window-maximum/描述给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。 进阶:你能在线性时间复杂度内解决此题吗?提示:1 <= nums.length <= 10^5-10^4 &lt

2020-11-11 22:47:30 21

原创 leetcode 373.查找和最小的K对数字 Java

查找和最小的K对数字题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/find-k-pairs-with-smallest-sums/描述给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。找到和最小的 k 对数字 (u1,v1), (u2,v2) ... (uk,vk)。示例示例 1:输入: nums1 = [1,7,

2020-11-10 16:01:28 113

原创 leetcode 1046.最后一块石头的重量 Java

最后一块石头的重量题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/last-stone-weight/描述有一堆石头,每块石头的重量都是正整数。每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下:如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。最后,

2020-11-10 14:57:04 6

原创 CSP 202009-2 风险人群筛查 Java(100分)

202009-2 风险人群筛查题目链接解题代码题目链接http://118.190.20.162/view.page?gpid=T112解题代码直接模拟就行import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); String[] initStr = input

2020-11-09 23:03:19 42

原创 CSP 202009-1 称检测点查询 Java(100分)

CSP 202009-1 称检测点查询题目链接解题代码题目链接http://118.190.20.162/view.page?gpid=T113解题代码第一题,数据量很小,直接用数组实现了。数据量如果可以用堆,插入的时候排序。import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner inpu

2020-11-09 22:37:50 52

原创 leetcode 958.二叉树的完全性检验 Java

二叉树的完全性检验题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/check-completeness-of-a-binary-tree/描述给定一个二叉树,确定它是否是一个完全二叉树。百度百科中对完全二叉树的定义如下:若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。)提示:树中将会

2020-11-09 22:02:22 25

原创 leetcode 662.二叉树最大深度 Java

二叉树最大深度题目链接描述示例初始代码模板模板题目链接https://leetcode-cn.com/problems/maximum-width-of-binary-tree/描述给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长度。注意: 答案在32位有符号整数的表示范围内。

2020-11-09 19:24:19 26

原创 leetcode 908.最小差值I Java

最小差值I题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/smallest-range-i/描述给你一个整数数组 A,请你给数组中的每个元素 A[i] 都加上一个任意数字 x (-K <= x <= K),从而得到一个新数组 B 。返回数组 B 的最大值和最小值之间可能存在的最小差值。提示:1 <= A.length <= 100000 <= A[i] <= 100000 <= K &

2020-11-09 16:33:06 62

原创 leetcode 355.设计推特 Java

设计推特题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/design-twitter/描述设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文。你的设计需要支持以下的几个功能:postTweet(userId, tweetId): 创建一条新的推文getNewsFeed(userId): 检索最近的十条推文。每个推文都必须是由此用户关注的人或者是用户自己发出的

2020-11-09 16:15:43 20

原创 leetcode 122.买卖股票的最佳时机II Java

买卖股票的最佳时机II题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。提示:1 <= prices.length <= 3

2020-11-08 23:28:54 4

原创 leetcode 684.冗余连接 Java

冗余连接题目连接描述示例初始代码模板代码题目连接https://leetcode-cn.com/problems/redundant-connection/描述在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向

2020-11-06 16:07:18 6

原创 leetcode 547.朋友圈 Java

朋友圈题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/friend-circles/描述班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必

2020-11-06 15:51:52 7

原创 leetcode 128.最长连续序列 Java

最长连续序列题目链接描述示例初始代码模板代码SetMap题目链接https://leetcode-cn.com/problems/longest-consecutive-sequence/描述给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。进阶:你可以设计并实现时间复杂度为 O(n) 的解决方案吗? 提示:0 <= nums.length <= 104-109 <= nums[i] <= 109示例示例

2020-11-05 19:26:26 6

原创 类设计技巧 《Java 核心技术 卷I》

本文摘自《Java 核心技术 卷I》第四章 对象与类。个人认为是个很必要的知识,故在博客上做个记录。如果有条件,建议买上一本读一读,很有收获。类设计技巧1.一定要保证数据私有2.一定要对数据进行初始化3.不要在类中使用过多的基本类型4.不是所有的字段都需要单独的字段访问器和字段更改器5.分解有过多指责的类6.类名和方法名要能够体现它们的职责7.优先使用不可变的类1.一定要保证数据私有 这是最重要的;绝对不要破坏封装性。有时候,可能需要编写一个访问器方法或更改器方法,但是最好还是保持实例字段的私.

2020-11-05 17:59:22 8

原创 leetcode 200.岛屿数量 Java

岛屿数量题目链接描述示例初始代码模板代码题目链接https://leetcode-cn.com/problems/number-of-islands/描述给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。提示:m == grid.lengthn == grid[i].length1 <= m, n <= 300

2020-11-04 16:48:34 14

原创 Java的一些基本术语解释 JDK、JRE、SE、EE、ME...

原自Java核心技术 卷I术语名缩写解释Java Development Kit(Java开发工具包)JDK编写Java程序的程序员使用的软件Java Runtime Environment(Java运行时环境)JRE运行java程序的用户使用的软件Server JRE(服务器JRE)–在服务器上运行Java程序的软件Standard Edition(标准版)SE用于桌面或简单服务器应用的Java平台Enterprise Edition(企业版

2020-11-03 23:36:48 29

原创 Java常用数据结构 个人总结(挖坑更新阶段)

准备开个大坑,Java数据结构,内容会慢慢调整。暂定内容,对常用的数据结构进行4个方向的介绍:1.常用API方法,会用一些例子进行测试2.源码分析,看看底层如何实现3.在一定程度上自己写一个有类似API的数据结构,尽量接近源码(由于自身水平,很可能差强人意,但是先试试)4.附上一些经典的题目,比如力扣中可以使用这种数据结构解决的题目。长久更新,慢慢调整ArrayList1.常用方法包含方法测试与源码解析,之前写一块了https://blog.csdn.net/qq_43349112/ar

2020-11-03 23:09:11 12

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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