Codility 网站练习题

本文记录了作者在Codility网站上进行编程练习的过程,包括Lesson1.2至Lesson2.4的题目链接及得分情况。作者指出,理解和优化算法以达到更好的时间复杂度和空间复杂度是关键,同时在某些题目中遇到的数学逻辑验证和边界条件的处理是挑战之一。
摘要由CSDN通过智能技术生成

Lesson1.2:FrogJmp

https://codility.com/demo/results/trainingGWCV2Z-YYS/

int solution(int X, int Y, int D) {
    // write your code in C99'
    int diff = Y - X;
    if(diff % D == 0)
        return diff /D;
    else
        return diff / D + 1;
}

Lesson1.3:PermMissingElem

https://codility.com/demo/results/trainingFSS3GC-SUR/

https://codility.com/demo/results/trainingYPCVGU-2PV/

class Solution {
    public int solution(int[] A) {
        // write your code in C# 6.0 with .NET 4.5 (Mono)
        if(A.Length == 0)
        return 1;
        int sum = 1;
        for(int i = 1; i < A.Length; i ++)
        {
            sum += i + 1;
            A[0] += A[i];
        }
        sum += A.Length +1;
        return sum - A[0];
    }
}


Lesson 2.1:FrogRiverOne  

https://codility.com/demo/results/training9Y7N9S-UDT/ 

这个英文 题目有点。。。 一次性100分不容易

class Solution {
    public int solution(int X, int[] A) {
        // write your code in C# 6.0 with .NET 4.5 (Mono)
         if(A.Length == 1)
        {
            return A[0] == X ? 0 : -1;
        }
        
        bool[] array = new bool[X];
        array[A[0] - 1] = true;
        A[0] = 1;
        for(int i = 1;i < A.Length; i ++)
        {
            if(array[A[i] - 1] == false)
            {
                A[0] += 1;
                array[A[i] - 1] = true;
            }
            if(A[0] >= X)
                return i;
        }
        return -1;
    }
}


Lesson 2.2 : 

https://codility.com/demo/results/trainingFM9S6F-HGD/  

数组会出现重复数据。。。 1 4 1


https://codility.com/demo/results/trainingMGUKDA-PRT/ 

题目要求很细致 时间复杂度和空间复杂度 注意清楚了 基本不会出错 如果试图更简洁,如我第一个代码,则出现了其他bug

class Solution {
    public int solution(int[] A) {
        // write your code in C# 6.0 with .NET 4.5 (Mono)
        int sum = 0;
        for (int i = 0; i < A.Length;i ++)
        {
            sum +=  i + 1 - A[i];
        }
        if(sum == 0)
            return 1;
        return 0;       
    }
}
class Solution {
    public int solution(int[] A) {
        // write your code in C# 6.0 with .NET 4.5 (Mono)
        bool[] flagArray = new bool[A.Length];
        int sum = 0;
        for (int i = 0; i < A.Length;i ++)
        {
            if(A[i] > A.Length || flagArray[A[i] - 1] == true)
            {
                return 0;  //值大于A.Length 有相同元素
            }
            sum +=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值