zoukankan      html  css  js  c++  java
  • LeetCode

    最近在刷LeetCode题 为了心中的一个小秘密,在考虑是用英文还是中文的时候纠结了,最后为了省篇幅还是选择了中文

    1.从排序数组中删除重复项

    问题:给定排序的数组nums,就地删除重复项,使每个元素只出现一次并返回新的长度。不要为另一个数组分配额外的空间,你必须这样做修改输入数组就地用O(1)额外的内存。

    例1:
    鉴于nums = [1,1,2],
    您的函数应返回长度= 2,与前两个元素nums是1和2分别。
    你返回的长度超出了什么并不重要。

    解:

    /**
     * @param {number[]} nums
     * @return {number}
     */
    var removeDuplicates = function(nums) {
      let len = nums.length
      let a =0
      for(let i=0;i<len;i++){
      if(nums[i]!== nums[a]){
          a++;
          nums[i] = nums[a]
        }
      }
      return a+1
    };

     2.给定一个数组,将数组向右旋转k步,其中  k  为非负数

    例子:

    输入: [1,2,3,4,5,6,7]和k = 3
    输出: [5,6,7,1,2,3,4]
    说明: 
    向右旋转1步:向右[7,1,2,3,4,5,6]
    旋转2步:向右[6,7,1,2,3,4,5]
    旋转3步:[5,6,7,1,2,3,4]

    知识点:这里着重了解unshift和pop方法的使用  unshift:向数组开头添加一个或更多元素,返回新的长度  pop:用于删除并返回数组的最后一个元素 注意这两个方法 会修改原数组的值

    解:

    /** 
    *@param {number[]} nums
     * @param {number} k
     * @return {void} Do not return anything, modify nums in-place instead.
     */
    var rotate = function(nums, k) {
       while(k>0){
        nums.unshift(nums.pop())
        k--
        }     
    }   

    注意:if满足条件后只执行一次 ,while只要满足条件会不停的执行

     3.给定一个整数数组,查找数组是否包含任何重复项。如果数组中至少出现两次值,则函数应返回true,如果每个元素都是不同的,则返回false。

    例子:

    输入: [1,2,3,1]
    输出: true

    解:

    /**
     * @param {number[]} nums
     * @return {boolean}
     */
    var containsDuplicate = function(nums) {
      nums.sort()
      let len = nums.length
      for(let i=0;i<len;i++){
        if(nums[i] == nums[i+1]{
          return true}
        }
      }
      return false }
     
  • 相关阅读:
    CtsVerifier-Bluetooth-LE-SEcure-ClientServer-Test测试pass但是无法选择PassButton
    error: 'LOG_TAG' macro redefined
    AndroidBuildSystem资料
    [dumpsys input]dumpsys input没有KeyEvent-KeyCode-MotionEvent键值
    [GTS]GtsSecurityHostTestCases#testNoExemptionsForSocketsBetweenCoreAndVendorBan
    [Gts]Fail-GtsTvTestCases#testLauncherChange
    [Cts-Verifier]waiver-Camera-ITS-Test
    历史角度看Support Library 到 AndroidX
    基于大疆无人机SDK二次开发
    关于Support库28及以上版本无法查看源码问题
  • 原文地址:https://www.cnblogs.com/alhh/p/9917149.html
Copyright © 2011-2022 走看看