
leetCode
刷题记录leetcode
望南
这个作者很懒,什么都没留下…
展开
-
leetCode - 无重复字符的最长子串
function lengthOfLongestSubstring(s: string): number { //l 左指针 maxLength 最大长度 let l:number = 0 let maxLength:number = 0 // hashMap存储重复字符,以及出现的位置 const map = new Map() // r 右指针 开始遍历 for (let r:number = 0; r < s.length; r++) {原创 2022-01-04 16:09:15 · 561 阅读 · 0 评论 -
leetCode -爬楼梯
//假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?// 假设n = 1 O==[===========> 1种 0 1 0// 假设n = 2 O==[===========> 1+1 2 2种 1 2 1// 假设n = 3 O==[===========> 1+1+1 2+1 1+2 3种 1 3 2// 假设n = 4原创 2021-12-27 11:31:42 · 2765 阅读 · 0 评论 -
leetCode - 算术平方根
function mySqrt(x: number): number { // if (x === 0) return 0 // if(x === 1) return 1 // for (let i: number = 1; i <= x / 2; i++) { // if (i * i <= x && x < (i + 1) * (i + 1)) { // return i // }原创 2021-12-24 16:44:08 · 369 阅读 · 0 评论 -
leetCode - 二进制求和
function addBinary(a: string, b: string): string { // 解法会溢出 // const la = parseInt(a, 2) // const lb = parseInt(b, 2) // const total = (la + lb).toString(2) // return total let l1: string = a.length >= b.length ? a : b let l2: string =原创 2021-12-24 15:35:17 · 608 阅读 · 0 评论 -
leetCode - 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
// 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。function plusOne(digits) { for (let i = digits.length - 1; i >= 0; i--) { if (digits[i] !== 9) { digits[i] += 1 for (let j = i + 1; j < digits.length; j++) { digits[j] = 0 }原创 2021-12-21 13:25:35 · 395 阅读 · 0 评论 -
leetCode - 最后一个单词的长度
// 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。function lengthOfLastWord(s: string): number { return s.trim().split(' ')[s.trim().split(' ').length - 1].length};...原创 2021-12-20 17:47:00 · 93 阅读 · 0 评论 -
leetCode - 最大子数组和
function maxSubArray(nums: number[]): number { if (nums.length === 1) return nums[0] let max_end: number = nums[0] let max_current: number = nums[0] for (let i: number = 1; i < nums.length; i++) { // 拿到第一个最大字串,就是nums[0]和nums[1]的和来做原创 2021-12-20 17:12:05 · 121 阅读 · 0 评论 -
leetCode - 搜索插入位置
if (!nums.length) return 0 let i: number = 0 while (i < nums.length) { if (nums[i] === target) return i if (nums[i] > target) return i if (target > nums[nums.length - 1]) return nums.length i+原创 2021-12-20 13:51:55 · 192 阅读 · 0 评论 -
leetCode - 移除数组中的指定元素
function removeElement(nums:nums[], val:numer):numer { if (nums.length === 0) { return 0 } let loop:numer = 0 while (loop < nums.length) { if (nums[loop] === val) { nums.splice(loop, 1) } else { loop++ } } return原创 2021-12-20 13:29:14 · 108 阅读 · 0 评论 -
leetCode -实现一个strStr(),返回一个字符串在另一个字符串中出现的位置
function strStr(haystack, needle) { if (needle === '') return 0 // js已有轮子 // return haystack.indexOf(needle) // 相当于自己实现一个indexOf方法 for (let i = 0; i < haystack.length; i++) { if (haystack[i] === needle[0]) { if (haystack.slice(i, i原创 2021-12-20 13:20:29 · 307 阅读 · 0 评论 -
leetCode - 有效的括号
说实话这个题还是觉得有问题,看了官方思路写出来了,function isValid(s: string): boolean { // 先判断字符串的length 不为偶数返回false if (s.length % 2 !== 0) return false const strMap = new Map([ [']', '['], [')', '('], ['}', '{'], ]) const stk: string[] = [] for (let i of s) { if原创 2021-12-09 15:27:29 · 2983 阅读 · 0 评论 -
leetCode -- 最长公共前缀
没有想到什么好的办法 就是直接暴力循环,先找到最短子串,在找子串function longestCommonPrefix(strs: string[]): string { let focu:string = '' let str:string = strs[0] if (!strs.length) return focu // 先找最短子串 for (let i = 1; i < strs.length; i++) { str = strs[i].length <原创 2021-11-19 16:33:08 · 94 阅读 · 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 + II 。通常情况原创 2021-11-08 10:45:03 · 120 阅读 · 0 评论 -
leetCode - 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121 输出:true示例 2:输入:x = -121 输出:false 解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10 输出:false 解释:从右向左读, 为 01 。因此它不是一个回文数。示原创 2021-11-03 17:56:53 · 84 阅读 · 0 评论 -
leetCode - 整数翻转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123 输出:321示例 2:输入:x = -123 输出:-321示例 3:输入:x = 120 输出:21示例 4:输入:x = 0 输出:0提示:-231 <= x <= 231 - 1解法1:functi原创 2021-11-03 13:08:56 · 309 阅读 · 0 评论 -
leetCode - 两数之和,返回下标
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] ==9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], target原创 2021-11-01 11:56:34 · 171 阅读 · 0 评论 -
leetCode - 575分糖果
leetCode – 575分糖果给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。示例2:输入: candies = [1,1,2,3]输出: 2解析:原创 2021-11-01 10:05:46 · 161 阅读 · 0 评论