您当前的位置: 首页 >  leetcode

不脱发的程序猿

暂无认证

  • 1浏览

    0关注

    492博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

不脱发的程序猿 发布时间:2020-09-14 13:43:16 ,浏览量:1

目录

第1题:两个列表的最小索引总和

第2题:反转字符串中的元音字母

第3题:整数反转

第4题:将有序数组转换为二叉搜索树

第5题:第N个泰波那契数

第6题:数组序号转换

第7题:质数排序

第8题:日期之间隔几天

第9题:—年中的第几天

第10题:复写零

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

第1题:两个列表的最小索引总和

试题要求如下:

 

解答思路:

哎,暴力破解。

回答(C语言):

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
char ** findRestaurant(char ** list1, int list1Size, char ** list2, int list2Size, int* returnSize){
    int minNum = list1Size > list2Size ? list2Size : list1Size;
    char **res = (char **)malloc(sizeof(char *) * minNum);
    int index = INT_MAX;
    int num = 0;

    for (int i = 0; i < list1Size; i++){
        for (int j = 0; j < list2Size; j++) {
            if (strcmp(list1[i], list2[j]) == 0){
                if (i + j < index){
                    index = i + j;
                    res[0] = list1[i];
                    num = 1;
                }
                else if (i + j == index){
                    res[num] = list1[i];
                    num++;
                }
            }
        }
    }

    *returnSize = num;
    return res;
}

运行效率如下所示:

第2题:反转字符串中的元音字母

试题要求如下:

解答思路:

元音字母:a[ei]、e[i:]、i[ ai]、o[eu]、u[ju:]。

回答(C语言):

bool isAEIOU(char c){
    return (c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='A'||c=='E'||c=='I'||c=='O'||c=='U');
}

char * reverseVowels(char * s){
    int len = strlen(s);
    if(lenhead){
        if(isAEIOU(s[head])&&isAEIOU(s[tail])){
            char temp;
            temp = s[head];
            s[head] = s[tail];
            s[tail] = temp;
            head++, tail--;
        }
        else{
            if(!isAEIOU(s[head]))head++;
            if(!isAEIOU(s[tail]))tail--;
        }
    } 
    
    return s;
}

运行效率如下所示:

第3题:整数反转

试题要求如下:

回答(C语言):

#define isOverLength 0

int reverse(int x){
    long lRet = 0;
    while(0 != x){
        lRet = lRet * 10 + x % 10;
        x = x / 10;
    }

    if((int)lRet != lRet){
        return isOverLength;
    }

    return (int)lRet;
}

运行效率如下所示:

第4题:将有序数组转换为二叉搜索树

试题要求如下:

解答思路:

递归法:定位根节点、根节点左边作为左支递归处理、根节点右边作为右支递归处理。

回答(C语言):

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */

struct TreeNode* sortedArrayToBST(int* nums, int numsSize){
    int     iRoot       = 0;
    struct TreeNode*    pCurNode    = NULL;

    //1,结束条件
    if((NULL == nums) || (0 == numsSize)) return NULL;

    //2,初始化
    pCurNode = (struct TreeNode*)malloc(sizeof(struct TreeNode));

    //3,定位根节点
    iRoot = numsSize / 2;

    //4,递归处理左右支
    pCurNode->val = nums[iRoot];
    pCurNode->left = sortedArrayToBST(&nums[0], iRoot);
    pCurNode->right = sortedArrayToBST(&nums[iRoot + 1], numsSize - iRoot - 1);
    return pCurNode;
}

运行效率如下所示:

第5题:第N个泰波那契数

试题要求如下:

回答(C语言):

int tribonacci(int n){
    if(n==0) return 0;
    if(n==1||n==2) return 1;

    int dp[n+1];
    
    dp[0]=0;
    dp[1]=1;
    dp[2]=1;

    for(int i=3;i dis[i - 1][0])
        {
            k++;

        }
        arr[dis[i][1]] = k;
    }
    return arr;
}

运行效率如下所示:

第7题:质数排序

试题要求如下:

解答思路:

质数有m个,非质数有n个,结果为m!*n!。

注意:计算阶乘int 型会溢出 用long int;不要用科学计数法表示。

回答(C语言):

const long long int m=1000000007;

int prime(int n){
    if(n==1)return 0;

    for(int i=2;i            
关注
打赏
1664101891
查看更多评论
0.1807s