力扣题目汇总(重复N次元素,反转字符串,斐波那契数)

重复 N 次的元素

1.题目描述

在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。

返回重复了 N 次的那个元素。

示例 1:

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

示例 2:

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

示例 3:

输入:[5,1,5,2,5,3,5,4]
输出:5 

提示:

  1. 4 <= A.length <= 10000
  2. 0 <= A[i] < 10000
  3. A.length 为偶数

2.解题思路

跟着题目思路走,我是超时了下面是我的代码

3.解题

class Solution:
    def repeatedNTimes(self, A: List[int]) -> int:
        A_1 = set(A)
        A_1 = list(A_1)
        for a in A_1:
            if A.count(a) == len(A)/2:
                return a
                break

反转字符串

1.题目描述

  1. 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。

    不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

    你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。

    示例 1:

    输入:["h","e","l","l","o"]
    输出:["o","l","l","e","h"]
    

    示例 2:

    输入:["H","a","n","n","a","h"]
    输出:["h","a","n","n","a","H"]
    

2.解题思路

思路,直接看例子,就是头尾按顺序对调

3.解题

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        st_num = 0
        e_num = len(s)-1
        while e_num >st_num:
            s[st_num],s[e_num] = s[e_num],s[st_num]
            st_num += 1
            e_num -= 1

斐波那契数

1.题目描述

斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 01 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,   F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.

给定 N,计算 F(N)

示例 1:

输入:2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1.

示例 2:

输入:3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2.

示例 3:

输入:4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3.

提示:

  • 0 ≤ N ≤ 30

2.解题思路

看式列就行了,找规律

3.解题

class Solution:
    def fib(self, N: int) -> int:
        i=0
        j=1
        while N: #0是空会停止布尔值是False
            N-=1
            i,j=j,j+i
        return i

```有更加好的思路,或者解题方法评论区留言谢谢``

posted @ 2019-05-21 17:30  小小咸鱼YwY  阅读(884)  评论(0编辑  收藏  举报