leetcode
努力努力再努力12138
勇往直前,不忘初心
展开
-
js 0-1背包
0-1背包问题给定背包容量W,一系列物品{weight,value},每个物品只能取一件,求最大价值采用动态规划解决(动态规划从前往后,后面的值取决于前面的直接用就可以,像填格子)找到关键位置第i个物品,装还是不装装如果装,则最大价值取决于前i-1个物品在背包重量为W-weight(i)的情况下的值和不装的值的最大值f[i][j] = Math.max(f[i-1][j],values[i]+f[i-1][j-weights[i]])不装如果不装,则最大价值取决于前i-1个物品在原创 2021-04-24 00:30:42 · 316 阅读 · 1 评论 -
剑指 Offer 05. 替换空格 javascript js
剑指 Offer 05. 替换空格三种方法请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”return s.replace(/\s/g, '%20');return s.replace(/[]/g, '%20');let res ='';for (let c of s) { res += c.charCodeAt() === 32 ? '%20' :原创 2021-03-04 16:20:14 · 224 阅读 · 1 评论 -
剑指 Offer 03. 数组中重复的数字 javascript
剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3var findRepeatNumber = function(nums) { var s = new Set(); for (const i in原创 2021-03-04 15:59:16 · 140 阅读 · 1 评论 -
力扣做题小结之字符串
力扣做题小结之字符串1.string的方法:charAt(i),将字符串看成数组,找到第i个字符;length(),求长度substring(a,b):返回字符串第a到b的子串2.StringBuilder使用原因:改动字符串时不像string要创建新对象,节省空间,比StringBuffer速度快;但线程不安全(一般使用此方法)toString():字符序列转字符串append(String s):指定的字符串追加到此字符序列reverse():将此字符序列用其反转形式取代...原创 2020-12-18 10:41:30 · 150 阅读 · 2 评论 -
剑指 Offer 50. 第一个只出现一次的字符力扣
剑指 Offer 50. 第一个只出现一次的字符在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "思路:将字符串中字符放入哈希表中,拿出第一个只出现一次的字符。没有返回空。知识点:1.Map<String,Object>map=newHashMap<String,Object>Map是一个接口,它的每个元素包含一个key对象和一个value对象。且在这原创 2020-12-15 16:05:52 · 157 阅读 · 0 评论 -
力扣 剑指 Offer 53 - II. 0~n-1中缺失的数字
剑指 Offer 53 - II. 0~n-1中缺失的数字一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8012013思路:寻找元素与下标不同的,中间即缺少两种方法:1、顺序遍历 2、二分查找顺序class Solution {原创 2020-12-14 15:12:49 · 95 阅读 · 0 评论 -
力扣 剑指offer 斐波那契 青蛙跳台阶问题
1.动态规划dp剑指 Offer 10- I. 斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1原创 2020-12-07 20:42:42 · 91 阅读 · 0 评论 -
leetcoe 力扣 20 有效的括号 java
有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: trueJava中stat.原创 2020-12-02 11:06:02 · 52 阅读 · 0 评论 -
力扣 剑指offer48 最长不含重复的子串 java medium
剑指 Offer 48. 最长不含重复字符的子字符串请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子原创 2020-11-29 15:49:09 · 90 阅读 · 0 评论 -
力扣 243.最短单词距离
力扣需要vip,没有vip的朋友可以去牛客网做,一样的题题目描述给定一个string数组article(有单词构成)和数组中元素的个数n,同时给定数组中的两个单词x和y。请返回这两个单词的最短距离(比如两个单词分别在第1和第3个位置,则最短距离为2)。保证两个单词不相同且均在数组中出现,同时保证数组中单词数小于等于1000。我的题解import java.util.*;public class Distance { public int getDistance(String[] arti原创 2020-11-28 15:47:49 · 248 阅读 · 0 评论 -
169. 多数元素 力扣
多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2神仙解法class Solution { public int majorityElement(int[] nums) { int ans=nums[0]; int len=1;.原创 2020-11-28 15:00:29 · 97 阅读 · 0 评论 -
力扣 219. 存在重复元素 II and hashmap,hashset区别
存在重复元素 II给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: nums = [1,2,3,1,2,3], k = 2输出: false科普:哈希表就是散列表,数据结构中的都是基本结构.原创 2020-11-28 13:36:01 · 88 阅读 · 0 评论 -
力扣 leetcode 169. 多数元素
力扣 leetcode 169. 多数元素题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2来源:力扣(LeetCode)1.我的解法先上代码class Solution { public int majorityElement(int[] nums) {原创 2020-11-24 15:35:30 · 134 阅读 · 0 评论 -
LeetCode 力扣 罗马数字转整数
罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + I原创 2020-10-15 19:21:51 · 111 阅读 · 0 评论 -
leetcode 力扣 回文数
leetcode 力扣 回文数题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/pr原创 2020-10-13 11:07:53 · 85 阅读 · 0 评论