【LeetCode】按奇偶排序数组 斐波那契数

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

你可以返回满足此条件的任何数组作为答案。
在这里插入图片描述
解答:

class Solution {
    public int[] sortArrayByParity(int[] A) {
        int start = 0;
        int end = A.length-1;
        while (start < end){
            if (A[start]%2 == 1 && A[end]%2 == 0){
                int tmp = A[start];
                A[start] = A[end];
                A[end] = tmp;
                start++;
                end--;
            }else if(A[start]%2 == 0 && A[end]%2 == 0){
                start++;
            }else if (A[start]%2 == 1 && A[end]%2 == 1){
                end--;

            }else{
                start++;
                end--;
            }
        }
        return A;
    }
}

首尾交换的思想。


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

F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
给定 N,计算 F(N)。

在这里插入图片描述
解法一:递归

class Solution {
        public int fib(int N) {
            if(N==1) return 1;
            else if(N == 2) return 1;
            else {
                return fib(N-1)+fib(N-2);
            }

        }
}

解法二:递推

class Solution {
    public int fib(int N) {
        if(N<=0)
            return 0;
        else if(N==1)
            return 1;
        else if(N==2)
            return 1;
        else{
            int low = 1;
            int high = 1;
            int sum = low+high;
            
            for(int i=2;i < N; i ++){
                low = high;
                high = sum;
                sum = low+high;
            } 
            return high;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42322103/article/details/95024743