目录
第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;
}
运行效率如下所示:
试题要求如下:
解答思路:
元音字母: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;
}
运行效率如下所示:
试题要求如下:
回答(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;
}
运行效率如下所示:
试题要求如下:
解答思路:
递归法:定位根节点、根节点左边作为左支递归处理、根节点右边作为右支递归处理。
回答(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;
}
运行效率如下所示:
试题要求如下:
回答(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;
}
运行效率如下所示:
试题要求如下:
解答思路:
质数有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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?