
数据结构&算法&设计模式
数据结构&算法&设计模式
yujkss
这个作者很懒,什么都没留下…
展开
-
JAVA对字符串进行32位MD5加密
public static void main(String[] args) { String s ="202111012231046012000000111101705104827"; for (int i = 0; i <50 ; i++) { System.out.println( EncodeByMD5(s).toUpperCase()+" 长度"+EncodeByMD5(s).toUpperCase().length()); }}/**原创 2022-03-29 22:40:23 · 9452 阅读 · 0 评论 -
Leetcode72.编辑距离
Leetcode72.编辑距离题目描述代码示例题目描述给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1输入: word1 = "horse", word2 = "ros"输出: 3解释: horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e'原创 2021-10-21 17:38:19 · 173 阅读 · 0 评论 -
Leetcode287.寻找重复数
Leetcode287.寻找重复数题目描述代码示例题目描述给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例1输入: [1,3,4,2,2]输出: 2示例2输入: [3,1,3,4,2]输出: 3代码示例public class LeetCode287 { public static void main(String[] args) {原创 2021-10-21 15:47:27 · 139 阅读 · 0 评论 -
Leetcode448.找到所有数组中消失的数字
Leetcode448.找到所有数组中消失的数字题目描述代码示例题目描述给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为*O(n)*的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例1:输入:[4,3,2,7,8,2,3,1]输出:[5,6]代码示例import java.util.ArrayL原创 2021-10-21 15:39:47 · 311 阅读 · 0 评论 -
Leetcode494.目标和
Leetcode494.目标和题目描述示例代码题目描述给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例 1:输入: nums: [1, 1, 1, 1, 1], S: 3输出: 5解释: -1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3原创 2021-10-21 15:25:57 · 260 阅读 · 0 评论 -
Leetcode771.宝石与石头
771.宝石与石头题目描述代码示例题目描述给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z", S = "ZZ"输出: 0注意:S 和 J 最多含有50个字母。 J 中的字符不原创 2021-10-21 14:33:27 · 208 阅读 · 0 评论 -
Leetcode136.只出现一次的数字
只出现一次的数字题目描述示例代码题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4示例代码public class LeetCode136 { public static void main(String[] args) { System原创 2021-10-21 11:16:37 · 251 阅读 · 0 评论 -
Leetcode121.买卖股票的最佳时机
121.买卖股票的最佳时机题目描述代码示例题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格原创 2021-10-21 10:23:50 · 164 阅读 · 0 评论 -
Leetcode015.三数之和
Leetcode015.三数之和题目描述代码示例题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]代码示例import java.util.ArrayList;i原创 2021-10-21 09:55:40 · 189 阅读 · 0 评论 -
Leetcode049.字母异位词分组
字母异位词分组题目描述代码示例题目描述给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。 不考虑答案输出的顺序。代码示例public class LeetCode049 { public static原创 2021-10-20 18:09:40 · 176 阅读 · 0 评论 -
Leetcode046.全排列
全排列题目描述代码示例题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]代码示例import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class LeetCode046 { public st原创 2021-10-20 15:47:08 · 106 阅读 · 0 评论 -
Leetcode005.最长回文子串
最长回文子串题目描述代码示例题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 :输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。输入: "cbbd"输出: "bb"代码示例public class LeetCode005 { public static void main(String[] args) { System.out.println(new LeetCode005().原创 2021-10-20 15:19:37 · 167 阅读 · 0 评论 -
Leetcode003.无重复字符的最长子串
无重复字符的最长子串题目描述代码示例题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,原创 2021-10-20 14:56:33 · 164 阅读 · 0 评论 -
Leetcode001.两数之和
两数之和题目描述代码示例题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]代码示例import java.util.Arrays;import java.util.原创 2021-10-20 14:38:50 · 129 阅读 · 0 评论 -
Leetcode002.两数相加
public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } public static void main(String[] args) { ListNode l1 = new ListNode(243); ListNode l2 = new ListNode(564);; ListNode l3= addTwoNumbers(l1原创 2021-10-20 14:22:34 · 95 阅读 · 0 评论 -
一文说透JDK Proxy动态代理!
一文说透JDK Proxy动态代理!追溯代理种类静态代理动态代理总结追溯首先,要明确为什么要存在代理呢?存在一个常见的需求:怎样在不修改类A代码的情况下,在调用类A的方法时进行一些功能的附加与增强呢?先不考虑什么代理不代理的,我们设计一个简单的实现方案:新创建一个类B,类B组合类A,在类B中创建一个方法b,方法b中调用类A中的方法a,在调用前和调用后都可以添加一些自定义的附加与增强代码。 当有需求需要调用类A的方法a并且想要添加一个附加功能时,就去调用类B的方法b即可实现上述需求;下面为了便于理转载 2021-08-03 12:08:48 · 725 阅读 · 0 评论 -
算法学习指南
转自:https://www.zhihu.com/people/cxyxiaowu10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。掌握了这些基础的数据结构和算法,再学更加复杂的数据结构和算法,就会非常容易、非常快。...转载 2021-01-21 09:05:03 · 179 阅读 · 0 评论