- 博客(40)
- 资源 (2)
- 收藏
- 关注
原创 350. 两个数组的交集 II
题目描述:给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]提示:1 <= nums1.length, nums2.
2022-05-16 11:26:00 157
原创 2250. 统计包含每个点的矩形数目
题目描述:给你一个二维整数数组 rectangles ,其中 rectangles[i] = [li, hi] 表示第 i 个矩形长为 li 高为 hi 。给你一个二维整数数组 points ,其中 points[j] = [xj, yj] 是坐标为 (xj, yj) 的一个点。第 i 个矩形的 左下角 在 (0, 0) 处,右上角 在 (li, hi) 。请你返回一个整数数组 count ,长度为 points.length,其中 count[j]是 包含 第 j 个点的矩形数目。如果 0 <
2022-04-26 10:57:51 445
原创 力扣第288常周赛第三题——6039. K 次增加后的最大乘积
知识点:小顶堆和大顶堆题目描述:给你一个非负整数数组 nums 和一个整数 k 。每次操作,你可以选择 nums 中 任一 元素并将它 增加 1 。请你返回 至多 k 次操作后,能得到的 nums的 最大乘积 。由于答案可能很大,请你将答案对 109 + 7 取余后返回。示例 1:输入:nums = [0,4], k = 5 输出:20 解释:将第一个数增加 5 次。 得到 nums = [5, 4] ,乘积为 5 *4 = 20 。 可以证明 20 是能得到的最大乘积,所以我们返回 20 。
2022-04-10 17:23:42 365
原创 Java中Comparator的使用
一直对Comparator中的compare方法不太理解,每次用到都要去查好久,这次记录一下自己的理解。需求:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]],每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。现按照身高降序排列,ki按升序排列。身高降序排列:如果person2[0] - person1[0]>0说明后面的人比前后面的人高,需要调整,如果person2[0
2022-03-31 11:03:01 2594
原创 LeetCode-1004. 最大连续1的个数 III
知识点:滑动窗口题目描述:给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。示例 1:输入:nums = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3输出:10解释:[
2022-03-29 10:14:37 674
原创 LeetCode440. 字典序的第K小数字
题目描述:给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字。示例 1:输入: n = 13, k = 2输出: 10解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。示例 2:输入: n = 1, k = 1输出: 1提示:1 <= k <= n <= 109思路:字典树:简而言之,就是根据数字的前缀进行排序。比如 10 < 9,因为 1
2022-03-23 10:14:16 124
原创 LeetCode93. 复原 IP 地址
新知识:public static String join(CharSequence delimiter,Iterable<? extends CharSequence> elements)返回一个新String的副本组成CharSequence elements与指定的副本一起加入delimiter 。For example, List<String> strings = new LinkedList<>(); strings.add("Java");stri
2022-03-22 21:27:45 104
原创 左神面试指南——在单链表删除倒数第K个节点
题目:分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点。要求如果链表长度为N,时间复杂度达到O(N),额外空间复制度达到O(1)代码:public class removeLastKthNode { public static class Node{ public int value; public Node next; public Node(int data) {
2021-12-01 13:26:32 133
原创 左神面试指南——打印两个有序链表我的公共部分
题目描述:给定两个有序链表的头指针head1和head2,打印两个链表的公共部分。代码:public class printCommonPart { public static void printCommonPart(Node head1,Node head2) { System.out.println("Common Part:"); while (head1!=null&&head2!=null) {
2021-12-01 11:11:49 3838
原创 LeetCode_每日一题:下一个更大元素 I
先说:这个题目是一个简单题,但是我最先想到的是使用暴力破解去解决。也可以跑通,但是感觉效率不是很高,于是学习了单调栈+HashMap的解决方法。看到一个评论感觉很重要:亲们记住,一但要求下一个更大的元素,就是用单调栈解,力扣题库相似的题目都是这个解法。知识点:单调栈:单调栈中存放的数据应该是有序的,所以单调栈也分为单调递增栈和单调递减栈单调递增栈:单调递增栈就是从栈底到栈顶数据是从大到小单调递减栈:单调递减栈就是从栈底到栈顶数据是从小到大ArrayDeque:ArrayDeque是Deque
2021-10-26 15:54:11 109
原创 LeetCode每日一题:240. 搜索二维矩阵 II
题目描述:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:提示:m == matrix.lengthn == matrix[i].length1 <= n, m <= 300-109 <= matrix[i][j] <= 109每行的所有元素从左到右升序排列每列的所有元素从上到下升序排列-109 <= target &l
2021-10-25 16:33:52 179
原创 LeetCode.638-每日一题-大礼包
题目描述:在 LeetCode 商店中, 有 n 件在售的物品。每件物品都有对应的价格。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。给你一个整数数组 price 表示物品价格,其中 price[i] 是第 i 件物品的价格。另有一个整数数组 needs 表示购物清单,其中 needs[i] 是需要购买第 i 件物品的数量。还有一个数组 special 表示大礼包,special[i] 的长度为 n + 1 ,其中 special[i][j] 表示第 i 个大礼包中内含第 j 件物品的
2021-10-24 16:47:27 184
原创 LeetCode-3.无重复字符的最长子串
研一刚开学,继续开始刷题!希望2年后自己可以有一个好的结果。fighting!!题目描述:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。考察知识点
2021-10-23 14:06:02 82
原创 leetcode每日一题——959. 由斜杠划分区域
题目描述:在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此 \ 用 “\” 表示。)。返回区域的数目。提示:1 <= grid.length == grid[0].length <= 30grid[i][j] 是 ‘/’、’’、或 ’ '。解题思路:这道题又是求连通分量的个数问题。我们可以用并查集解决。具体代码:public clas
2021-01-25 21:15:49 155
原创 换钱的方法数
题目描述:思路分析:以arr[5,10,2b5,1],aim = 15为例子。我们想得到aim=15的方法数sum。我们假设使用0张5元,其他面值组成15元的方法数为a,使用1张5元,其c他面值组成10元的方法数为b,使用2张5元,其他面值组成5元的方法数为c,使用3张5元,其他面值组成0元的方法数为d。sum = a+b+c+d。因此我们可以写出暴力递归的方法。暴力递归方法如下: // arr:钱的面值 // index:index以及往后的面值都可以随便用 // aim:目标钱 /
2021-01-25 13:35:43 136
原创 leetcode每日一题——1319. 连通网络的操作次数
题目描述:用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回 -1 。示例:
2021-01-23 19:33:35 197
原创 Java实现——求一颗二叉树上的最远距离
题目描述:二叉树中,一个节点可以往上走和往下走,那么从节点A总能走到节点B。节点A走到节点B的距离为:A走到B最短路径上的节点个数。求一颗二叉树的最远距离。思路分析:1.分析可能性:当前节点的最远距离来自它的左子树,不经过当前节点。当前节点的最远距离来自它的右子树,不经过当前节点。当前节点的最远距离经过它自己,最远距离等于左子树的最远距离加上右子树的最远距离加上头节点。2 列信息全集:根据第一步的分析,我们可以得出,我们需要的信息有两个。以当前节点为头节点的子树的高度。以当前节点
2021-01-20 20:52:14 332
原创 Java实现——最大搜索二叉树的大小
题目描述:给定一颗二叉树的头节点head,请返回最大搜索二叉树子树的大小。搜索二叉树的大小:搜索二叉树的节点的个数。思路分析:1.分析可能性:当前节点的左子树是搜索二叉树,而右节点并不是搜索二叉树;或者左节点的最大搜索二叉树的大小大于右节点的最大搜索二叉树的大小,那么此时最大的搜索二叉树就是它的左子树;当前节点的右子树是搜索二叉树而左节点不是搜索二叉树;又或者左节点的最大搜索二叉树的大小小于右节点的最大搜索二叉树的大小,那么此时最大的搜索二叉树就是它的右子树;当前节点的左子树和右子树都是搜索
2021-01-20 20:35:45 162
原创 剑指 Offer 55 - II. 平衡二叉树
题目描述:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例1 :示例2:限制:1 <= 树的结点个数 <= 10000思路:今天学习了树形dp,这应该是树形dp中最简单的一道题。一般树形dp都有一个固定的解题思路。1.分析可能性:这一步也是最难最重要的一步。就以这个题目为例,分析一棵树是否是平衡树,有下面四种情况。左子树是平衡树,右子数不是平衡树,这棵树整体不是平衡树。左子树不是平衡
2021-01-20 20:11:49 82
原创 单调栈应用——可见山峰对问题
题目描述上面这个博客把问题描述的很清楚。JAVA代码:public class 可见山峰对问题 { public static class Pair { public int value; public int times; public Pair(int value) { this.value = value; this.times = 1; } } public static long communication(int[] arr) { if (arr =
2021-01-17 20:10:36 133
原创 单调栈的应用——求最大子矩阵的大小
题目:给定一个整型矩阵map,其中的值只有0和1两种,求其中全是1的所有矩形区域中, 最大的矩形区域为1的数量。示例1:输入:1 1 1 0输出:3示例2:输入:1 0 1 11 1 1 11 1 1 0输出:6解题思路:这个题是单调栈的应用。那么什么是单调栈呢?单调栈分为单调递增栈和单调递减栈,通过使用单调栈我们可以访问到下一个和上一个 比他大(小)的元素。也就是说在队列或数组中,我们需要通过比较前后元素的大小关系来解决问题时我们通常使用单调栈。下面这个问题我们就
2021-01-17 19:23:16 120
原创 滑动窗口应用——最大值减去最小值小于或等于num的子数组数量
题目:给定数组 arr 和整数 num,共返回有多少个子数组满足如下情况:max(arr[i…j]) - min(arr[i…j]) <= nummax(arr[i…j])表示子数组arr[i…j]中的最大值,min[arr[i…j])表示子数组arr[i…j]中的最小值。要求:如果数组长度为N,请实现时间复杂度为O(N)的解法。代码:import java.util.LinkedList;public class 最大值减去最小值小于或等于num的子数组数量 { publi
2021-01-16 14:20:33 115
原创 剑指 Offer 59 - I. 滑动窗口的最大值
题目描述:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:最后一列是滑动窗口的最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7 51 3 -1 [-3 5 3] 6
2021-01-16 13:38:03 75
原创 leetcode每日一题——684. 冗余连接
题目描述:在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边 [u, v] 应满足相同的格式 u <
2021-01-13 20:50:36 141
原创 leetcode每日一题——2. 两数相加
题目描述:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9],
2021-01-12 20:13:01 479
原创 leetcode每日一题——1202. 交换字符串中的元素
题目描述:给你一个字符串 s,以及该字符串中的一些「索引对」数组 pairs,其中 pairs[i] = [a, b] 表示字符串中的两个索引(编号从 0 开始)。你可以 任意多次交换 在 pairs 中任意一对索引处的字符。返回在经过若干次交换后,s 可以变成的按字典序最小的字符串。示例 1:输入:s = “dcab”, pairs = [[0,3],[1,2]]输出:“bacd”解释:交换 s[0] 和 s[3], s = “bcad”交换 s[1] 和 s[2], s = “bacd
2021-01-11 14:32:20 233
原创 Android基础最全题库
自己总结的安卓基础最全题库,期末成绩99分。废话不多说,直接上题库。每章总结第一部分 Android 概述单选题Android安装包文件简称APK,其后缀名是(A)A、 apkB、 exeC、 txtD、 appAndroid 工程中存放各种程序资源的目录是(C)A、 srcB、 genC、 resD、 binAndroid项目中的布局文件放在哪个目录下(A)A、 res/layoutB、 res/valueC、 assetsD、 res/drawable在创建And
2020-05-28 18:52:02 31672 16
原创 Java实现 蓝桥杯 算法提高 天天向上(DP)
首先感谢这两位博主的文章,让我学到了很多知识。https://blog.csdn.net/baidu_28312631/article/details/47418773https://blog.csdn.net/a1439775520/article/details/105836763试题 算法提高 天天向上问题描述 A同学的学习成绩十分不稳定,于是老师对他说:“只要你连续4天成绩有进步,那我就奖励给你一朵小红花。”可是这对于A同学太困难了。于是,老师对他放宽了要求:“只要你有4天成绩是递增
2020-05-11 11:18:13 1054 1
原创 Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)
参考代码地址博主的代码写的很好,只不过对于我这样的小白,看了半天才把代码看懂,我这里主要总结一下自己的思路以及贴出自己理解的注解。希望能帮助到和我一样的小白。问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物。 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻。使用第i种僵尸需要花费Wi资源,可以得到Pi的攻击效果。在这里,我们认为多个僵尸总的攻击效果就是他们每个攻击效果的代数和。 地图共有n行,对于第i行,最左端有若干植物,这些植物需要至少Q
2020-05-10 21:23:33 646
原创 Java实现 蓝桥杯 算法提高 成绩排序2
问题描述 给出n个学生的成绩,将这些学生按成绩排序,排序规则:总分高的在前;总分相同,数学成绩高的在前;总分与数学相同,英语高的在前;总分数学英语都相同,学号小的在前输入格式 第一行一个正整数n,表示学生人数 接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩输出格式 输出n行,每行表示一个学生的数学成绩、英语成绩、语文成绩、学号 按排序后的...
2020-05-07 21:31:12 686 1
原创 Java实现 蓝桥杯 算法提高 成绩排序
问题描述 给出n个学生的成绩,将这些学生按成绩排序, 排序规则,优先考虑数学成绩,高的在前;数学相同,英语高的在前;数学英语都相同,语文高的在前;三门都相同,学号小的在前输入格式 第一行一个正整数n,表示学生人数 接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩输出格式 输出n行,每行表示一个学生的数学成绩、英语成绩、语文成绩、学号 按...
2020-05-07 21:17:11 763 1
原创 最长的滑坡
问题描述 小袁非常喜欢滑雪, 因为滑雪很刺激。为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。小袁想知道在某个区域中最长的一个滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。如下: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-…-...
2020-05-02 20:42:01 894 2
原创 最大值路径
对此问题做一般化描述: 有n阶方阵,从矩阵的左下角元素为起点,从行或列(水平或垂直)两个方向上移动,直到右上角。求出有多少条路径可以使得经过的元素累加值最大,最大值是多少。输入格式 共有n+1行。 第一行整数n,表示矩阵的阶数,2<=n<=10。 第二行起,每行n个整数,以空格分隔,共n行。。输出格式 一行,两个空格分隔的数,第一个表示最大值路径的条数,第二个表...
2020-05-02 20:37:27 557 1
原创 蓝桥杯模拟赛——村庄通电
题目介绍问题描述2015年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。这一次,小明要帮助 n 个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电足够所有村庄使用。现在,这 n 个村庄之间都没有电线相连,小明主要要做的是架设电线连接这些村庄,使得所有村庄都直接或间接的与发电站相通。小明测量了所有村庄的位置(坐标)和高度,如果要连接两个村庄...
2020-04-24 18:25:45 549 1
原创 嵌入式软件设计与开发——在线考试系统
记录一下嵌入式期末考核,部分功能没有完善程序流程图:网络版,分为服务器端和客户端(学生端);服务器端开启后客户端暂时不能连接,只有服务器端开始开始考试后客户端才能连接;服务器端先读取题库,题库可以是一个普通文本,也可以是csv文件或数据库等其他方式,需要提前创建好,题目类型包括选择题和填空题。服务器端输入相应的命令可以查看试卷(命令可以自行设计)。客户端通过IP连接服务器,连接...
2020-04-22 21:38:46 336 1
原创 Java——RFID-ISO14443电子钱包程序设计
RFID-ISO14443电子钱包程序设计该电子钱包程序是使用Java写的,核心代码分为两部分:第一部分是数据处理部分,主要功能是处理阅读器响应的数据,得到自己想要的数据。我们主要处理的是状态码,命令码和数据部分。另一部分是发送指令的程序,发送程序的代码中,大部分字段都是一样的,不同的指令,我们只用改变命令码和数据部分即可。具体代码如下:处理数据的代码:private void proces...
2020-04-21 13:39:04 1839 17
原创 强制转换中得小秘密
作为学习Java的小白鼠,今天刚学习了强制转换。想把自己学到的东西与大家分享,希望大家指点。 转型有两种: 向上转型和向下转型(强制转型) 两种分别如下: 一种是向上转型 对于基础数据类型 , 可以自动转型 ,比如: int a = 10; long b = a; 这里就是把int型转成了long型 , 因为 long范围比int大 , 这样的转型不会有任何影响 , 所以...
2018-09-06 22:20:18 204 1
网上考试系统.zip
2020-04-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人