自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 csp试题 202303-2 垦田计划(Java)

问题描述。

2023-05-23 14:46:50 394

原创 csp试题 202303-1 田地丈量(Java)

每块田地可视为平面直角坐标系下的一块矩形区域,由左下角坐标 (x1,y1)和右上角坐标(x2,y2) 唯一确定,且满足x1<x2、y1<y2。最近,顿顿想要在南山脚下开垦出一块面积为a*b 矩形田地,其左下角坐标为(0,0) 、右上角坐标为(a,b)。输入的第一行包含空格分隔的三个正整数 n、a 和b ,分别表示西西艾弗岛上田地块数和顿顿选定区域的右上角坐标。接下来 n 行,每行包含空格分隔的四个整数x1 、y1、x2 和y2 ,表示一块田地的位置。输出一个整数,表示顿顿选定区域内的田地面积。

2023-05-12 15:28:49 709

原创 455. 分发饼干(Java贪心解决)

题目假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。 示例 1:输入: g = [1,2,3], s = [1,1]输出: 1解

2022-02-25 12:39:14 561

原创 35. 搜索插入位置(Java二分法解决)

题目给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5,6]

2022-02-24 12:42:00 342

原创 26. 删除有序数组中的重复项(Java双指针解决)

题目给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的

2022-02-23 19:25:25 167

原创 347. 前 K 个高频元素(Java小顶堆解决)

题目给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 105k 的取值范围是 [1, 数组中不相同的元素的个数]题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的来源:力扣(LeetCode

2022-02-22 20:13:18 159

原创 239. 滑动窗口最大值(Java单调双端队列解决)

题目给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回 滑动窗口中的最大值 。示例 1:输入: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

2022-02-20 18:20:33 172

原创 150. 逆波兰表达式求值(Java用栈解决)

题目根据逆波兰表示法,求表达式的值。有效的算符包括+、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为0的情况。示例1:输入:tokens=["2","1","+","3","*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2+1)*3)=9示例2:输入:tokens=["4"...

2022-02-18 12:38:28 88

原创 1047. 删除字符串中的所有相邻重复项(Java用栈解决)

题目给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。

2022-02-17 11:50:19 584

原创 20. 有效的括号(Java用栈解决)

题目给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例1:输入:s="()"输出:true示例2:输入:s="()[]{}"输出:true示例3:输入:s="(]"输出:false示例4:输入:s="([)]"输出:false示例5:输入:s="{[]}"...

2022-02-15 12:04:03 619

原创 225. 用队列实现栈(Java用双队列解决)

题目请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop和empty)。实现MyStack类:voidpush(intx)将元素x压入栈顶。intpop()移除并返回栈顶元素。inttop()返回栈顶元素。booleanempty()如果栈是空的,返回true;否则,返回false。注意:你只能使用队列的基本操作——也就是pushtoback、peek/popfrom...

2022-02-14 17:14:43 157

原创 232. 用栈实现队列(Java双栈解决)

题目请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队列的末尾intpop()从队列的开头移除并返回元素intpeek()返回队列开头的元素booleanempty()如果队列为空,返回true;否则,返回false说明:你只能使用标准的栈操作——也就是只有pushtotop,peek/popfrom...

2022-02-13 18:03:10 200

原创 459. 重复的子字符串(Java枚举法解决)

题目给定一个非空的字符串s,检查是否可以通过由它的一个子串重复多次构成。示例1:输入:s="abab"输出:true解释:可由子串"ab"重复两次构成。示例2:输入:s="aba"输出:false示例3:输入:s="abcabcabcabc"输出:true解释:可由子串"abc"重复四次构成。(或子串"abcabc"重复两次构成。)提示:1<=s.length<=...

2022-02-12 13:06:09 826

转载 剑指 Offer 58 - II. 左旋转字符串(Java数组解决)

题目字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例1:输入:s="abcdefg",k=2输出:"cdefgab"示例2:输入:s="lrloseumgh",k=6输出:"umghlrlose"限制:1<=k<s.length<=10000...

2022-02-10 11:34:42 101

原创 151. 翻转字符串里的单词(Java用新字符数组解决)

题目给你一个字符串s,逐个翻转字符串中的所有单词。单词是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的单词分隔开。请你返回一个翻转s中单词顺序并用单个空格相连的字符串。说明:输入字符串s可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。示例1:输入:s="theskyisblue"输出:"blueisskythe"示例2:输入:s="...

2022-02-09 11:51:42 193

原创 剑指 Offer 05. 替换空格(Java)

题目请实现一个函数,把字符串s中的每个空格替换成"%20"。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."限制:0<=s的长度<=10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路转换成字符数...

2022-02-08 16:48:24 109

原创 541. 反转字符串 II(Java用双指针)

题目给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。如果剩余字符少于k个,则将剩余字符全部反转。如果剩余字符小于2k但大于或等于k个,则反转前k个字符,其余字符保持原样。示例1:输入:s="abcdefg",k=2输出:"bacdfeg"示例2:输入:s="abcd",k=2输出:"bacd"提示:1<=s.length<=...

2022-02-06 17:31:44 104

原创 344. 反转字符串(Java双指针)

题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。示例1:输入:s=["h","e","l","l","o"]输出:["o","l","l","e","h"]示例2:输入:s=["H","a","n","n","a","h"]输出:["h","a","n","n","a","H"]提示:1<=s.len...

2022-02-06 16:11:32 142

原创 18. 四数之和(Java排序和双指针)

题目给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且不重复的四元组[nums[a],nums[b],nums[c],nums[d]](若两个四元组元素一一对应,则认为两个四元组重复):0<=a,b,c,d<na、b、c和d互不相同nums[a]+nums[b]+nums[c]+nums[d]==target你可以按任意顺序返回答案。示例1:输入:num...

2022-02-02 17:40:20 1535

原创 15. 三数之和(Java双指针解决)

题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.len

2022-01-30 22:46:27 138

原创 383. 赎金信(Java的哈希表)

题目给你两个字符串:ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回true;否则返回false。magazine中的每个字符只能在ransomNote中使用一次。示例1:输入:ransomNote="a",magazine="b"输出:false示例2:输入:ransomNote="aa",magazine="ab"输出:false示...

2022-01-30 16:21:15 1395

原创 454. 四数相加 II(Java的哈希表解决)

题目给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例1:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2],nums4=[0,2]输出:2解释:两个元组如下:1.(0,...

2022-01-29 22:05:30 1083

原创 1. 两数之和(Java的HashMap来解决)

题目给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。示例2:输入:nums=[3,...

2022-01-28 18:39:04 241

原创 202. 快乐数(Java哈希集合解决)

题目编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。示例 1:输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 +

2022-01-27 17:19:30 96

原创 349. 两个数组的交集(Java)利用哈希集合

题目给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/intersection

2022-01-26 22:07:10 106

原创 1002.查找共用字符(Java)

题目给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。示例 1:输入:words = ["bella","label","roller"]输出:["e","l","l"]示例 2:输入:words = ["cool","lock","cook"]输出:["c","o"]提示:1 <= words.length <= 1001 <=

2022-01-24 22:21:47 592

原创 242.有效的字母异位词(Java)

题目给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。示例1:输入:s="anagram",t="nagaram"输出:true示例2:输入:s="rat",t="car"输出:false提示:1<=s.length,t.length<=5*104s和t仅包含小写字母来...

2022-01-23 12:46:58 164

原创 59. 螺旋矩阵 II

题目给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:输入:n = 1输出:[[1]]提示:1 <= n <= 20来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/spiral-matrix-ii著作权归领扣网络所有。商业转载请联系

2022-01-21 20:49:04 87

原创 209. 长度最小的子数组(Java)

题目209.长度最小的子数组给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其和≥target的长度最小的连续子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。示例1:输入:target=7,nums=[2,3,1,2,4,3]输出:2解释:子数组[4,3]是该条件下的长度最小的子数组。示例2:输入:target=...

2022-01-20 09:00:00 221

原创 977. 有序数组的平方(Java)

题目给你一个按非递减顺序排序的整数数组nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100]排序后,数组变为[0,1,9,16,100]示例2:输入:nums=[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1<=nums.length&...

2022-01-19 09:00:00 269

原创 移除元素(快慢指针法)

题目27.给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不...

2022-01-18 09:15:00 154

原创 二分法Java

题目704.给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。解题思路二分法的一般写法代码class Solution { public int search(int[] nums, int target) { if (target < nums[0] || target > nums[nums.length - 1]) {

2022-01-17 12:00:29 273

原创 二分查找Java

###题目704.给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。###解题思路二分法的一般写法###代码```javaclassSolution{publicintsearch(int[]nums,inttarget){if(target<nums[0]||target>...

2022-01-17 11:56:41 114

空空如也

空空如也

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

TA关注的人

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