- 博客(93)
- 资源 (2)
- 收藏
- 关注
原创 排序数组(Java)
给你一个整数数组 nums,请你将该数组升序排列。主要有 冒泡 简单选择 直接插入 希尔 堆 归并 快速排序七种多种方法,其中要求空间内存时,可优先使用堆排序直接插入排序,,,在接近有序的情况下,表现优异稳定性来讲,归并排序从数据量来看,数据量越小,简单排序方式越合适反之。数据量大,则采用快排class Solution { public int[] sortArray(int[] nums) { //简单选择...
2022-02-24 19:17:54
450
1
原创 【无标题】 K 个一组翻转链表(Java)
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseKGroup(ListNode head, int k) { if (head == null || hea...
2022-02-24 11:25:41
170
原创 . 数组中的第K个最大元素(Java)
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。1、暴力法class Solution { public int findKthLargest(int[] nums, int k) { int i = nums.length; Arrays.sort(nums); return nums[i-k];//要求的
2022-02-23 21:35:52
607
原创 无重复字符的最长子串(Java)
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。滑动窗口法,class Solution { public int lengthOfLongestSubstring(String s) { if(s == null || s.isEmpty()) return 0; int slow = 0,//滑动窗口左指针 int fast = 0; int max = 0;/...
2022-02-23 21:16:38
1714
原创 LRU 缓存(Java)
请你设计并实现一个满足LRU (最近最少使用) 缓存 约束的数据结构。实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value)如果关键字key 已经存在,则变更其数据值value ;如果不存在,则向缓存中插入该组key-value 。如果插入操作导致关键...
2022-02-21 22:44:52
391
原创 下一个更大元素 I
nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。给你两个 没有重复元素 的数组 nums1 和 nums2 ,下标从 0 开始计数,其中nums1 是 nums2 的子集。对于每个 0 <= i < nums1.length ,找出满足 nums1[i] == nums2[j] 的下标 j ,并且在 nums2 确定 nums2[j] 的 下一个更大元素 。如果不存在下一个更大元素,那么本次查询的答案是 -1 。返
2022-01-07 22:50:53
251
原创 每日温度(Java)
请根据每日气温列表temperatures,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用0来代替。示例 1:输入: temperatures = [73,74,75,71,69,72,76,73]输出:[1,1,4,2,1,1,0,0]示例 2:输入: temperatures = [30,40,50,60]输出:[1,1,1,0]示例 3:输入: temperatures = [30,60,90]输出: [1,1,0]...
2022-01-04 11:48:42
206
原创 最长回文子序列
给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。class Solution { public int longestPalindromeSubseq(String s) { int len=s.length(); int dp[][]=new int[len][len]; for(int i=0;i<len;i++){.
2022-01-04 11:19:24
190
原创 回文子串(Java)
给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。回文字符串 是正着读和倒过来读一样的字符串。子字符串 是字符串中的由连续字符组成的一个序列。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。class Solution { public int countSubstrings(String s) { boolean[][] dp = new boolean[s.length()][s.length()];.
2022-01-03 22:10:55
383
原创 判断子序列(Java)
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。class Solution { public boolean isSubsequence(String s, String t) { int lens=s.length(); int lent=t.length(); .
2022-01-02 23:30:00
522
原创 不同的子序列
给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE"是"ABCDE"的一个子序列,而"AEC"不是)题目数据保证答案符合 32 位带符号整数范围。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/distinct-subsequences著作权归领扣网络所有。商业转载请联系官方授权,非...
2022-01-02 23:15:00
46
原创 zuida子数组和(Java)
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。class Solution { public int maxSubArray(int[] nums) { if(nums.length==1) return nums[0]; int dp[]=new int[nums.length]; dp[0]=nums[0]; int.
2022-01-02 23:00:00
203
原创 不相交的线(Java)
在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足:nums1[i] == nums2[j]且绘制的直线不与任何其他连线(非水平线)相交。请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。以这种方法绘制线条,并返回可以绘制的最大连线数。class Solution { public int maxUncrossedLines(i..
2021-12-31 16:59:51
96
原创 最长公共子序列(Java)
给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。class Solution { public in.
2021-12-31 16:47:11
310
原创 spring错误
Disconnected from the target VM, address: '127.0.0.1:59838', transport: 'socket'Process finished with exit code -1org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 7 in XML document from class path resource [bean8.xml] is inval
2021-12-31 11:22:55
129
原创 最长重复子数组(Java)
给两个整数数组A和B,返回两个数组中公共的、长度最长的子数组的长度。class Solution { public int findLength(int[] nums1, int[] nums2) { int lenA=nums1.length; int lenB=nums2.length; int len=Math.max(lenA,lenB); int dp[][] =new int[lenA+1][le...
2021-12-30 14:35:08
298
原创 最长连续递增序列(Java)
给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest
2021-12-30 11:46:49
485
原创 买卖股票的zuija时机含手续费(Java)
给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。class Solution { public int maxProfit(int[] prices, int fee) {
2021-12-30 11:34:33
90
原创 最长递增子序列(Java)
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。class Solution { public int lengthOfLIS(int[] nums) { int len=nums.length; if(len==1) return 1; in.
2021-12-30 11:33:03
244
原创 买卖股票时机含冷冻期
给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:class Solution { public int maxProfit(int[] prices) { int len=prices.length; .
2021-12-29 12:16:15
46
原创 买卖股票的zuijai时机 IV
给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。class Solution { public int maxProfit(int k, int[] prices) { int len = prices.length; if(len == 0) return
2021-12-29 10:35:50
166
原创 买卖股票的zuijia时机 II(Java)
给定一个数组 prices ,其中prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。class Solution { public int maxProfit(int[] prices) { int len=prices.length; if(len==0) return 0; ..
2021-12-28 10:12:12
64
原创 leetcode买卖股票的时机(Java)
给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...
2021-12-27 22:17:57
43
转载 打家劫舍 III(java)
在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额class Solution { // 1.递归去偷,超时 public int rob(TreeNode root).
2021-12-24 22:02:49
160
原创 打家劫舍(Java)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。class Solution { public int rob(int[] nums) { if(nums.length==0) return 0; if(n
2021-12-15 20:23:30
72
原创 单词拆分(java)
给你一个字符串 s 和一个字符串列表 wordDict 作为字典,判定s 是否可以由空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。。class Solution { public boolean wordBreak(String s, List<String> wordDict) { boolean [] vaild=new boolean[s.length()+1]; vaild[0]=true; .
2021-12-14 20:00:31
909
原创 组合总和 Ⅳ(java)
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围class Solution { public int combinationSum4(int[] nums, int target) { int dp[]=new int [target+1]; dp[0]=1; for(int i=0;i<.
2021-12-12 12:39:26
45
原创 一零和(java)
给你一个二进制字符串数组 strs 和两个整数 m 和 n 。请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集class Solution { public int findMaxForm(String[] strs, int m, int n) { int[][]dp=new int[m+1][n+1]; int oneNum,..
2021-12-12 12:38:38
243
原创 目标和(Java)
给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加'+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目class Solution { public int findTargetSumWays(int[] nums, int.
2021-12-10 20:30:56
327
原创 最后一块石头的重量 II
有一堆石头,用整数数组stones 表示。其中stones[i] 表示第 i 块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x 和y,且x <= y。那么粉碎的可能结果如下:如果x == y,那么两块石头都会被完全粉碎;如果x != y,那么重量为x的石头将会完全粉碎,而重量为y的石头新重量为y-x。最后,最多只会剩下一块 石头。返回此石头 最小的可能重量 。如果没有石头剩下,就返回 0。class Solut...
2021-12-09 20:58:16
45
原创 分割等和子集
class Solution { public boolean canPartition(int[] nums) { int sum=0; for(int i=0;i<nums.length;i++){ sum+=nums[i]; } if(sum%2==1)return false; int target=sum/2; ...
2021-12-08 21:39:29
37
原创 不同的二叉搜索树
class Solution { public int numTrees(int n) { int []dp=new int [n+1]; dp[0]=1; for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ dp[i]+=dp[j-1]*dp[i-j]; } } return dp[...
2021-12-08 19:45:03
32
原创 整数拆分(Java)
class Solution { public int integerBreak(int n) { int []dp=new int [n+1]; dp[2]=1; for(int i=3;i<=n;i++){ for(int j=1;j<i-1;j++){ dp[i]=Math.max(dp[i],Math.max(j*dp[i-j],j*(i-j))); ...
2021-12-06 20:55:54
447
原创 不同路径ⅡJava
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?...
2021-11-24 20:38:14
258
原创 不同路径Java
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?class Solution { public int uniquePaths(int m, int n) { int dp[][]=new int[m][n]; for(int i=0;i<m;i++) dp[i][0]=...
2021-11-24 19:26:52
154
原创 使用最小花费爬楼梯Java
数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。class Solution { public int minCostClimbingStairs(int[] cost) { int len=cost...
2021-11-23 22:14:11
73
原创 解数独Java
编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用'.'表示class Solution { public void solveSudoku(char[][] board) { backTrace(board); } priva...
2021-11-23 20:09:03
177
原创 N皇后Java
n皇后问题 研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的n皇后问题 的解决方案。每一种解法包含一个不同的n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位class Solution { List<List<String>> res=new ArrayList<>(); public List<List<Str...
2021-11-23 20:07:35
336
原创 重新安排行程Java
给你一份航线列表 tickets ,其中 tickets[i] = [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。如果存在多种有效的行程,请你按字典排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前。假定所有机票至少存在一种合理的行程。且所有的机票 必须都用一次 且 只能用一次..
2021-11-22 22:42:17
381
原创 全排列ⅡJava
给定一个可包含重复数字的序列nums,按任意顺序返回所有不重复的全排列。class Solution { List<Integer> path=new ArrayList<>(); List<List<Integer>> res=new ArrayList<>(); public List<List<Integer>> permuteUnique(int[] nums) { ...
2021-11-22 21:38:05
545
Test.javaclass Student { private String id;//表示学号 private String name;//表示姓名 pri
2019-12-24
4实验四:IIR数字滤波器设计及软件实现
2019-12-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人