您当前的位置: 首页 >  leetcode

不脱发的程序猿

暂无认证

  • 3浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

力扣(LeetCode)刷题,简单题(第4期)

不脱发的程序猿 发布时间:2020-02-23 14:20:57 ,浏览量:3

目录

第1题:只出现一次的数字

第2题:两数之和

第3题:Excel表列名称

第4题:数组中重复的数字

第5题:二维数组中的查找

第6题:替换空格

第7题:从头到尾打印链表

第8题:斐波拉契数列

第9题:青蛙跳台阶问题

第10题:旋转数组的最小数

力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。

第1题:只出现一次的数字

试题要求如下:

 回答(C语言): 

//按位异或,相同的数异或为0,任何数与0异或为原数不变
int singleNumber(int* nums, int numsSize){
    int a = 0;
    for(int i = 0;i < numsSize ;i++){

        a ^= nums[i];
    }
    return a;
}
第2题:两数之和

试题要求如下:

回答(C语言): 

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numbersSize, int target, int* returnSize){

    int *res = malloc(sizeof(int) * 2);
    *returnSize = 2;
    int i = 0;
    int j = numbersSize - 1;
    while(true){
        if (nums[i] + nums[j] > target) {
            j--;
        } else if (nums[i] + nums[j] < target) {
            i++;
        } else{
            res[0] = i+1;
            res[1] = j+1;
            break;
        }
    }
    return res;
}
第3题:Excel表列名称

试题要求如下:

 回答(C语言): 

char * convertToTitle(int n){
    int len = 0, tmp = n;
    while (tmp){
        len++;
        tmp = (tmp - 1) / 26;
    }
    char *res = (char*)malloc(len + 1);
    tmp = n;
    res[len] = 0;
    while (len--){
        res[len] = (tmp - 1) % 26 + 'A';
        tmp = (tmp - 1) / 26;
    }
    return res;
}
第4题:数组中重复的数字

试题要求如下:

回答(C语言): 

int comp(const void *a, const void *b) {
    return *(int *)a < *(int *)b; //从小到大排序
}

int findRepeatNumber(int* nums, int numsSize){
    qsort(nums, numsSize, sizeof(int), comp);

    for (int i = 0; i < numsSize-1; i++) {
        if (nums[i] == nums[i+1])
            return nums[i];
    }

    return -1;
}
第5题:二维数组中的查找

试题要求如下:

回答(C语言): 

bool findNumberIn2DArray(int** matrix, int matrixSize, int* matrixColSize, int target){
    if(matrix==NULL || matrixSize==0 || matrixColSize[0]==NULL) 
        return false;

    for(int i=0;i=0){
        if(numbers[cou-1]>numbers[cou]){
            break;
        }
        cou--;
    }

    return numbers[cou];
}
关注
打赏
1664101891
查看更多评论
立即登录/注册

微信扫码登录

0.0411s