首页 > 其他分享 >leetcode简单:[1, 9, 13, 14, 20, 21, 26, 27, 35, 58]

leetcode简单:[1, 9, 13, 14, 20, 21, 26, 27, 35, 58]

时间:2023-01-09 19:36:38浏览次数:40  
标签:function 13 27 return nums ++ length var 20

目录

1. 两数之和

var twoSum = function(nums, target) {
    // 第一种
    // var len = nums.length
    // for (var i = 0; i < len; i++) {
    //     for (var j = i + 1; j < len; j++) {
    //         if (target - nums[i] == nums[j]) {
    //             return [i, j]
    //         }
    //     }
    // }
    // 第二种
    var map = new Map()
    for (let i = 0; i < nums.length; i++) {
        var comNum = target - nums[i]
        if (map.has(comNum)) {
            return [map.get(comNum), i]
        } else {
            map.set(nums[i], i)
        }
    }
    return []
};

9. 回文数

var isPalindrome = function(x) {
    var str = '' + x
    var left = 0
    var right = str.length - 1
    while (left < right) {
        if (str.charAt(left) != str.charAt(right)) {
            return false
        }
        left++
        right--
    }
    return true
};

13. 罗马数字转整数

var romanToInt = function(s) {
    var roman = ['I', 'V', 'X', 'L', 'C', 'D', 'M', 'IV', 'IX', 'XL', 'XC', 'CD', 'CM']
    var num = [1, 5, 10, 50, 100, 500, 1000, 4, 9, 40, 90, 400, 900]
    var res = 0
    for (var i = 0; i < s.length; i++) {
        var t = s[i] + s[i + 1]
        if (roman.indexOf(t) >= 0) {
            res += num[roman.indexOf(t)]
            i++
        } else {
            res += num[roman.indexOf(s[i])]
        }
    }
    return res
};

14. 最长公共前缀

var longestCommonPrefix = function(strs) {
    var res = ''
    if (strs.length == 0) {
        return res
    }
    for (var i = 0; i < strs[0].length; i++) {
        for (var j = 0; j < strs.length; j++) {
            if (strs[0][i] != '' && strs[0][i] != strs[j][i]) {
                return res
            }
        }
        res += strs[0][i]
    }
    return res
};

20. 有效的括号

var isValid = function(s) {
    if (s.length % 2 !== 0) return false
    let tmp = ['(', '[', '{', ')', ']', '}'] // 012345
    let result = []
    for (let i = 0; i < s.length; i++) {
        if (tmp.indexOf(s[i]) <= 2) {
            result.push(s[i])
        } else {
            let last = result.pop()
            if (tmp.indexOf(last) + 3 != tmp.indexOf(s[i])) {
                return false
            }
        }
    }
    if (result.length > 0) return false
    return true
};

21. 合并两个有序链表

var mergeTwoLists = function(l1, l2) {
    let prevhead = new ListNode(-1)
    let prev = prevhead
    while (l1 !== null && l2 !== null) {
        if (l1.val <= l2.val) {
            prev.next = l1
            l1 = l1.next
        } else {
            prev.next = l2
            l2 = l2.next
        }
        prev = prev.next
    }
    prev.next = l1 === null ? l2 : l1

    return prevhead.next
};

26. 删除有序数组中的重复项

var removeDuplicates = function(nums) {
    for (var i = 0; i < nums.length; i++) {
        if (nums[i] == nums[i + 1]) {
            nums.splice(i, 1);
            i--
        }
    }
    return nums.length
};

27. 移除元素

var removeElement = function(nums, val) {
    for (let i = 0; i < nums.length; i++) {
        if (nums[i] == val) {
            nums.splice(i, 1);
            i--;
        }
    }
    return nums.length
};

35. 搜索插入位置

var searchInsert = function(nums, target) {
    var min = 0;
    var max = nums.length - 1;
    if (target < nums[min]) return min;
    if (target > nums[max]) return max + 1;
    while (min <= max) {
        var mid = parseInt((min + max) / 2)
        if (target == nums[mid]) {
            return mid
        } else if (target > nums[mid]) {
            min = mid + 1
        } else {
            max = mid - 1
        }
    }
    return min
};

58. 最后一个单词的长度

var lengthOfLastWord = function(s) {
    s = s.trim().replace(/\s+/g, ' ')
    var arr = s.split(' ')
    return arr[arr.length - 1].length
};

标签:function,13,27,return,nums,++,length,var,20
From: https://www.cnblogs.com/echoyya/p/17038326.html

相关文章

  • leetcode简单:[66, 67, 70, 83, 121, 141, 160, 169, ,206, 338]
    目录66.加一67.二进制求和70.爬楼梯83.删除排序链表中的重复元素121.买卖股票的最佳时机141.环形链表160.相交链表169.多数元素206.反转链表338.比特位计数66.......
  • luogu P1971 [NOI2011] 兔兔与蛋蛋游戏
    题面传送门没想到二分图博弈这么早就考了?首先我们发现,如果将和起点行列之和奇偶性一样的点设为黑色,其余设为白色,那么每次空格只会在异色边之间走,而不会在同色边之间走。......
  • 271. Encode and Decode Strings [Medium]
    271.EncodeandDecodeStrings居然要premium才能做,果断换LintCode来写这题Designanalgorithmtoencodealistofstringstoastring.Theencodedstringisthe......
  • 「ZJOI2011」道馆之战
    「ZJOI2011」道馆之战给定一棵树,每一个节点\(2\)个房间,可以为薄冰或者障碍物,给定两个操作:修改某一个房间的两个区域,查询从\(u\)走到\(v\)最短可以经过多少薄冰(最终......
  • 【java基础】如何创建20元素以上的不可变集合?(Map.of()无法创建20个以上)
    背景由于Map.of()(jdk-9出现)创建的不可变集合无法超过20个参数,所以可以使用下面的办法创建Map<Object,Object>map=Map.ofEntries(hm.entrySet().toArray(newMap.Entry......
  • SPOJ SP32058 R6PL - Harbinger vs Sciencepal
    链接难度:\(\texttt{17/21}\)\(T\)组数据。有\(n\)组,每组有\(2\)个数\(x,y\),问把每组的一个数分配到一组另一个数分配到另一组两组数字和差的绝对值最小是多少。......
  • 「Codeforces」寒假训练 2023 #3
    A.StringLCM原题链接#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=1e5+10;intq;strings,t;intlens,lent;int_lcm;......
  • 洛谷 P1434 [SHOI2002] 滑雪 首次markdown测试
    [SHOI2002]滑雪题目描述Michael喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来......
  • SQL SERVER2016 4亿条数据秒查的实现
    第一步装机:内存16个128G,intel固态一个,CPU两个48核第二步装系统:直接win10,正版或者got版本都行,稳定就好第三步骤装SQL2016+管理工具://服务端下载地址:ed2k://|file|cn_sql_se......
  • client intended to send too large body: 2274148 bytes
    clientintendedtosendtoolargebody:2274148bytes 问题现象前端上传图片失败,nginx错误日志文件(/var/log/nginx/error.log)中的报错信息为:“clientintendedto......