java算法习题程序
阎八一
这个作者很懒,什么都没留下…
展开
-
【Java力扣算法】LeetCode 309 Best Time to Buy and Sell Stock with Cooldown(动态规划)
题目:给定一个整数数组,其中第i个元素代表了第i天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: ...原创 2020-01-18 10:24:13 · 393 阅读 · 0 评论 -
【Java力扣算法】LeetCode 131 分割回文串
题目: 分割回文串 给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ]代码:class...原创 2019-05-03 21:34:13 · 479 阅读 · 0 评论 -
【Java力扣算法】LeetCode 139 单词拆分
题目:给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcod...原创 2019-04-28 17:41:36 · 425 阅读 · 0 评论 -
【Java习题程序】带符号“-”字符串转整型
题目:字符串转整型:例如给一个数字字符串。“123”转成数字123 "-123"转成数字-123 “--123”转成数字123最后有完整代码思路: 1、将字符串转化为 字符串数组用split(); split()方法说明: https://mp.csdn.net/postedit/89108906...原创 2019-04-20 15:22:18 · 624 阅读 · 0 评论 -
【Java力扣算法】LeetCode 208 实现 Trie (前缀树)
题目:实现一个 Trie (前缀树),包含insert,search, 和startsWith这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith...原创 2019-05-21 17:17:53 · 236 阅读 · 0 评论 -
【Java力扣算法】LeetCode 344 反转字符串
题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2...原创 2019-05-25 16:41:37 · 645 阅读 · 0 评论 -
【Java力扣算法】LeetCode 152 乘积最大子序列(动态规划)
题目:乘积最大子序列给定一个整数数组nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。推荐示例:[0,2][-2][-3,-4][...原创 2020-01-18 06:49:57 · 331 阅读 · 0 评论 -
【Java力扣算法】LeetCode 242 有效的字母异位词
题目:给定两个字符串s和t,编写一个函数来判断t是否是s的一个字母异位词。示例1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法...原创 2019-05-22 14:41:14 · 221 阅读 · 0 评论 -
【Java力扣算法】LeetCode 212 单词搜索 II
题目:给定一个二维网格board和一个字典中的单词列表words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例:输入: words = ["oath","pea","eat","rain"] and board =...原创 2019-05-22 15:52:02 · 209 阅读 · 0 评论 -
【Java力扣算法】LeetCode 140 单词拆分II(有待改进)
题目: 给定一个非空字符串s和一个包含非空单词列表的字典wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入:s = "catsanddog"wordDict = ["cat", "cats", "and",...原创 2019-05-03 21:32:23 · 377 阅读 · 0 评论 -
【Java力扣算法】Leetcode 88 合并两个有序数组
题目:给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m =...原创 2019-04-23 20:31:04 · 272 阅读 · 0 评论 -
【Java力扣算法】LeetCode 240 搜索二维矩阵 II
题目:编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, ...原创 2019-04-23 20:15:24 · 242 阅读 · 0 评论 -
【java习题程序】输入整数n,求1~n整数中数字1出现的次数
public static void find(){ int total = 0; Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int j = n; j >0; j--) { //int j = n; ...原创 2019-04-08 19:10:55 · 1019 阅读 · 1 评论 -
【Java习题程序】输入一个英文单词顺序,反转句子中单词的顺序,但单词内字符的顺序不变。
题目:输入一个英文单词顺序,反转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理,例如输入“i am a student”,输出"student a am i"。 public static void overturn(String sen){ System.out.println(sen); String[] arr ...原创 2019-04-08 19:13:38 · 1499 阅读 · 0 评论 -
【Java习题程序】用非递归栈,回溯法,解决迷宫问题
题目:最後有完整代碼。思路:定义现在所在位置点的信息,包括所在位置、上下左右是否可走。然后按先上后下先左后右尝试走下一步,走完之后把点位信息存入栈,然后继续初始化下一点的信息,如此轮回,当走到死路的时候 出栈回退,一直回退到有下一条出路的点位,继续走下去。胜利判断方法:当栈顶元素 位置为地图右下角时 ,代表成功了。 当走到...原创 2019-04-16 10:47:16 · 1160 阅读 · 1 评论 -
【Java习题程序】 抽牌 -判断是否是连牌shuffle(),大小王随机表示一张牌
题目:从扑克牌中随机抽5张排,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大,小王可以看成任意数字。最后面有完整代码思路: 定义两个方法:一个用于抽牌 chou(),另一个用于判断是否是连牌judge()。 1、首先 抽出手牌 调用shuf...原创 2019-04-16 11:28:18 · 337 阅读 · 0 评论 -
【Java习题程序】递归求斐波那契数列第n项
题目:写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列:1 1 2 3 5 8 13 21 34...当前数是前两项数之和public static int fibonacci(int n){ if(n==1){ return 1; } if(n==2){ return 1;...原创 2019-04-16 11:48:51 · 3222 阅读 · 1 评论 -
【Java力扣算法】LeetCode 125 验证回文串
题目: 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1:输入: "A man, a plan, a canal: Panama"输出: true ...原创 2019-04-26 20:24:00 · 302 阅读 · 0 评论 -
【Java力扣算法】LeetCode 137 只出现一次的数字
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4思路:解法一:运行时间8ms(没优化) 先对数组排...原创 2019-04-23 19:28:14 · 279 阅读 · 0 评论 -
【Java力扣算法】Leetcode 169 求众数
题目:给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2思路:解法一:运行时间7ms,时间复杂度O(nlogn) 先排序,判断如...原创 2019-04-23 19:51:10 · 675 阅读 · 0 评论 -
【Java习题程序】将int整数转化为int数组,不用转String。
键盘输入整数,得到整形数组public class Main{ public static void emm(){ Scanner sc = new Scanner(System.in); int q = sc.nextInt(); int temp = q;//输入的整数 ...原创 2019-03-26 20:18:33 · 3619 阅读 · 0 评论