算法二

212 阅读1分钟

两数之后

var twoSum = function (nums, target) {
    for (let i = 0; i < nums.length; i++) {
        for (let j = i + 1; j < nums.length; j++) {
            if (nums[i] + nums[j] === target) {
                return [i, j];
            }
        }
    }
};
//leetcode submit region end(Prohibit modification and deletion)
console.log(twoSum([2, 7, 11, 15], 9));

最长公共前缀

var longestCommonPrefix = function (strs) {
    if (strs == null || strs.length == 0) return "";
    for (let i = 0; i < strs[0].length ; i++){
        let c = strs[0][i];
        for (let j = 1; j < strs.length; j ++) {
            if (i == strs[j].length || strs[j][i] != c)
                return strs[0].substring(0, i);
        }
    }
    return strs[0];
};
//leetcode submit region end(Prohibit modification and deletion)
console.log(longestCommonPrefix(['flower', 'flow', 'flight']));

有效的括号

var isValid = function (s) {
    if (!s) return true;
    let stack = [];
    let obj = {
        '{': "}",
        '(': ")",
        '[': "]",
    };
    for (let i = 0; i < s.length; i++) {
        let c = s[i]
        if (Object.keys(obj).includes(c)) {
            stack.unshift(c)
        } else {
            if(c !== obj[stack.shift()]) return false
        }
    }
    return stack.length === 0
};

合并2个有序列表

var mergeTwoLists = function (l1, l2) {
    if (!l1) return l2;
    if (!l2) return l1;

    if (l1.val < l2.val) {
        l1.next = mergeTwoLists(l1.next, l2)
        return l1
    } else {
        l2.next = mergeTwoLists(l1, l2.next)
        return l2
    }
};

删除数组中的重复项

var removeDuplicates = function (nums) {
    if (nums.length === 0) return 0;
    let i = 0;
    for (let j = 1; j < nums.length; j++) {
        if (nums[i] !== nums[j]) {
            i++;
            nums[i] = nums[j];
        }
    }
    console.log(nums);
    return i + 1;
};
//leetcode submit region end(Prohibit modification and deletion)
console.log(removeDuplicates([1, 1, 3, 3, 5, 6, 7, 7, 10]));

移除数组中指定的值

var removeElement = function (nums, val) {
    let i = 0;
    for (let j = 0; j < nums.length; j++) {
        if (nums[j] != val) {
            nums[i] = nums[j];
            i++;
        }
    }
    console.log(nums);
    return i;
}
console.log(removeElement([3, 2, 2, 4, 1], 2));