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写的话就是考察下数组操作方法了,注意下特殊情况即可。

  • 相关阅读:
    向量杂谈
    对widget使用WM_SetCallback
    群延迟与广义线性相位
    采样的频域表示
    Oracle 表的连接方式(2)-----HASH JOIN的基本机制1
    Oracle 表的连接方式(1)-----Nested loop join和 Sort merge join
    Oracle 表的访问方式(2)-----索引扫描
    Oracle 表的访问方式(1) ---全表扫描、通过ROWID访问表
    11g RAC R2 之Linux DNS 配置
    11g RAC r2 的启停命令概述1
  • 原文地址:https://www.cnblogs.com/lijie33402/p/4824589.html
Copyright © 2011-2022 走看看