zoukankan      html  css  js  c++  java
  • [算法学习]开始leetcode之旅

    在此记录一下用javascript刷leetcode的过程,每天都要坚持!

    1.Two Sum

    Given an array of integers, find two numbers such that they add up to a specific target number.

    The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2.

    Please note that your returned answers (both index1 and index2) are not zero-based.You may assume that each input would have exactly one solution.

    Input: numbers={2, 7, 11, 15}, target=9Output: index1=1, index2=2

    /**
     * @param {number[]} nums
     * @param {number} target
     * @return {number[]}
     */
    var twoSum = function(nums, target) {
        var len = nums.length,
            need,
            map = {},
            numbers = [];
        for(var i = 0; i < len; i++){
            need = target - nums[i];
            if(need in map){
                numbers.push(map[need] + 1);
                numbers.push(i + 1);
                break;
            }else{
                map[nums[i]] = i;
            }
        }
        return numbers;
    };
    

    这道题目注意下复杂度别傻傻的用双循环...

    20.Valid Parentheses

    Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
    The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

    /**
     * @param {string} s
     * @return {boolean}
     */
    var isValid = function(s) {
        var len = s.length,
            cur,
            stack = [],
            map = {'(':')','[':']','{':'}'};
        for(var i = 0; i < len; i++) {
            cur = s[i];
            if(map.hasOwnProperty(cur)){
                stack.push(cur);
            }else{
                if(stack.length === 0){
                    return false;
                }else{
                    stackTop = stack.pop();
                    if(map[stackTop] !== cur){
                        return false;
                    }
                }
            }
        }
        if(stack.length === 0){
            return true;
        }else{
            return false;
        }
        
    };
    

    这道题目是利用堆栈的,比较巧妙,数据结构很多记不得了,最近抽时间多翻翻。

    189.Rotate Array

    Rotate an array of n elements to the right by k steps.
    For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

    /**
     * @param {number[]} nums
     * @param {number} k
     * @return {void} Do not return anything, modify nums in-place instead.
     */
    var rotate = function(nums, k) {
        var len = nums.length;
        if(len === 0 || len === 1 || k===0){
            return;
        }
        var move = nums.splice(len - k,len);
        for(var i = move.length - 1;i >= 0;i--){
            nums.unshift(move[i]);
        }
    };
    

    这题用js写的话就是考察下数组操作方法了,注意下特殊情况即可。

  • 相关阅读:
    自动化测试框架相关资料下载
    C++白盒测试最佳实践课程,3个免费名额火热申请中,31号前截止申请...
    亿能测试培训中心 下周进入完整自动化测试项目实训阶段
    亿能测试大讲堂
    自动化测试调查问卷送《QTP自动化测试最佳实践》
    8月白盒测试课程
    广州亿能自动化测试沙龙
    8月自动化测试课程
    广州亿能自动化测试沙龙
    史上最强的自动化测试课程7月开设
  • 原文地址:https://www.cnblogs.com/lijie33402/p/4824589.html
Copyright © 2011-2022 走看看