leetcode easy

  1. Add Digits
    每一位相加,直至得到的数字为个位数。

    返回值只可能是0-9,并且0的情况只有输入数字是0.
    剩下num,均是按照1-9循环出现的。则:
    num == 0 ? 0 : (num%9 == 0 ? 9 : num%9).

  2. Happy Number
    一个数字上的每位的平方相加,循环,直到得到的值为1。

    遍历每一位,得到的值,如果此值为1,则返回true,反之,将该值放入hashset中,如果hashset中已经有该值,则说明其陷入循环之中,即不会不出现1,结束返回false。

  3. Move Zeroes
    将数组中的0放到数组末尾,非0数字按顺序放在数组前面

    如果此位为非0,继续,如果为0,则从此位开始找到第一个非0数,交换。

  4. Binary Tree Level Order Traversal II
    将二叉树每层放入一个list中,最终整个list组反转

    使用两个队列,queue1放上一层节点,queue2放当前结果。直到queue1为空,结束。

  5. Factorial Trailing Zeroes
    得到n!(n的阶乘)中末尾0的个数。

    末尾出现0的情况为:因数中有2和5,而在n!生成过程中,2的幂指数一定大于5,所以这道题转化为得到n!的5的幂指数。

  6. Palindrome Number
    判断是否是回文数字,即对称。(不申请额外的空间,即将此数字每一位放入数组中,然后首尾渐进匹配)

    从个位开始一次取出每一位组成一个新的数字,判断此数字是否和原有数字相等。如果为回文,则一定相等。

  7. Merge Sorted Array
    数组A长度为num1+nums2,但其由数值长度为num1,数组B长度num2。两数组均为排序好的数组,则将两数组合并排序且放入数组A中,只可以申请o(1)空间。

    通常合并排序从前向后比较,这里A数组后续num2部分没有数字,所以可以从后向前比较合并,这样就不要申请额外空间le。

  8. Contains Duplicate II
    数组在连续k个长度中是否出现重复元素。

    维护一个长度为k个hashset,start~end表示hashset中存放的数值。每加入一个元素:
    如果在hashset中,返回true;
    反之end++,加入hashset中;
    如果end-start > k,表示大于窗口,则start++,向后移动窗口。
    如果end大于数组长度,则表示没有,返回false。

  9. Rotate Array
    将一个数组循环移动k步。o(1)空间且in-place

    最简单的想法是每次移动一步,移动k次。复杂度高。首先当k大于数组长度len时,则只需要移动k%len次。其次,
    假如需要移动数组为AB(AB分界为k),则需要将其变为BA。则可以(取反(取反A)(取反B))正好为BA,为所求。

  10. Two Sum
    找出数组中之和为target值的两元素的下标。

    以一个数字为基准,判断剩下的是否有符合条件的元素,返回。复杂度为O(n2). 可以维护一个hashmap(nums[i], i)。则遍历每一个元素,查找target-nums[i]是否在hashmap中,如果在,则返回对应的下标。

  11. Count Primes
    返回小于n的质数的个数,要求复杂度O(n)

    申请一个n大小的bool数组,从2开始初始为true。则针对每一个数,如果为false,则继续。如果true,则将i*i到i*i+k*i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值