【万人千题】算法多维枚举入门的解题报告
之前没做出来的题目又回去做了
目录
1,392. 判断子序列 - 力扣(LeetCode) (leetcode-cn.com)
2,240. 搜索二维矩阵 II - 力扣(LeetCode) (leetcode-cn.com)
3,2006. 差的绝对值为 K 的数对数目 - 力扣(LeetCode) (leetcode-cn.com)
4,389. 找不同 - 力扣(LeetCode) (leetcode-cn.com)
5,1431. 拥有最多糖果的孩子 - 力扣(LeetCode) (leetcode-cn.com)
6,1588. 所有奇数长度子数组的和 - 力扣(LeetCode) (leetcode-cn.com)
7,1534. 统计好三元组 - 力扣(LeetCode) (leetcode-cn.com)
8,771. 宝石与石头 - 力扣(LeetCode) (leetcode-cn.com)
9,1389. 按既定顺序创建目标数组 - 力扣(LeetCode) (leetcode-cn.com)
10,14. 最长公共前缀 - 力扣(LeetCode) (leetcode-cn.com)
11,1925. 统计平方和三元组的数目 - 力扣(LeetCode) (leetcode-cn.com)
1,392. 判断子序列 - 力扣(LeetCode) (leetcode-cn.com)
bool isSubsequence(char * s, char * t)
{
int len=strlen(s);
int len2=strlen(t);
int i=0;
int j=0;
while(*(s+i)!='\0')
{
if(*(s+i)==*(t+j))
{
i++;
j++;
}
else
j++;
if(j>len2)
break;
}
return i==len;
}
2,240. 搜索二维矩阵 II - 力扣(LeetCode) (leetcode-cn.com)
bool searchMatrix(int** matrix, int matrixSize, int* matrixColSize, int target)
{
int i=0;
for(i=0;i<matrixSize;i++)
{
int j=0;
for(j=0;j<*matrixColSize;j++)
{
if(matrix[i][j]==target)
return true;
}
}
return false;
}
3,2006. 差的绝对值为 K 的数对数目 - 力扣(LeetCode) (leetcode-cn.com)
int countKDifference(int* nums, int numsSize, int k)
{
int count=0;
int i=0;
for(i=0;i<numsSize;i++)
{
int j=0;
for(;j<numsSize;j++)
{
if(nums[i]-nums[j]==k)
count++;
}
}
return count;
}
4,389. 找不同 - 力扣(LeetCode) (leetcode-cn.com)
char findTheDifference(char * s, char * t)
{
int i=0;
int lens=strlen(s);
int lent=strlen(t);
for(i=0;i<lens;i++)
{
int j=0;
for(j=0;j<lent;j++)
{
if(s[i]==t[j])
{
t[j]='0';
break;
}
}
}
for(i=0;i<lent;i++)
{
if(t[i]!='0')
return t[i];
}
return 0;
}
5,1431. 拥有最多糖果的孩子 - 力扣(LeetCode) (leetcode-cn.com)
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
bool* kidsWithCandies(int* candies, int candiesSize, int extraCandies, int* returnSize)
{
bool* ret=(bool*)malloc(sizeof(bool)*candiesSize);
int i=0;
int count=0;
for(i=0;i<candiesSize;i++)
{
count=0;
int j=0;
for(j=0;j<candiesSize;j++)
{
if(candies[i]+extraCandies>=candies[j])
count++;
}
if(count==candiesSize)
ret[i]=true;
else
ret[i]=false;
}
*returnSize=candiesSize;
return ret;
}
6,1588. 所有奇数长度子数组的和 - 力扣(LeetCode) (leetcode-cn.com)
int sumOddLengthSubarrays(int* arr, int arrSize)
{
int i=0;
int sum=0;
for(i=1;i<=arrSize;i+=2)
{
int j=0;
for(j=0;j+i<=arrSize;j++)
{
int k=0;
for(k=0;k<i;k++)
sum+=arr[j+k];
}
}
return sum;
}
7,1534. 统计好三元组 - 力扣(LeetCode) (leetcode-cn.com)
int countGoodTriplets(int* arr, int arrSize, int a, int b, int c)
{
int i=0;
int count=0;
for(i=0;i<arrSize;i++)
{
int j=i+1;
for(;j<arrSize;j++)
{
int k=j+1;
for(;k<arrSize;k++)
{
if(abs(arr[i]-arr[j])<=a&&abs(arr[i]-arr[k])<=c&&abs(arr[j]-arr[k])<=b)
count++;
}
}
}
return count;
}
8,771. 宝石与石头 - 力扣(LeetCode) (leetcode-cn.com)
int numJewelsInStones(char * jewels, char * stones)
{
int len1=strlen(jewels);
int len2=strlen(stones);
int i=0;
int count=0;
for(;i<=len1;i++)
{
int j=0;
for(j=0;j<len2;j++)
{
if(jewels[i]==stones[j])
count++;
}
}
return count;
}
9,1389. 按既定顺序创建目标数组 - 力扣(LeetCode) (leetcode-cn.com)
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
void back(int* arr,int n)
{
int i=n;
int tmp;
for(i=n;arr[i]!=-1;i++)
;
for(;i>n;i--)
{
arr[i]=arr[i-1];
}
}
int* createTargetArray(int* nums, int numsSize, int* index, int indexSize, int* returnSize)
{
*returnSize = numsSize;
int* target=(int*)malloc(sizeof(int)*(numsSize+2));
int i=0;
for(i=0;i<numsSize+2;i++)
{
target[i]=-1;
}
for(i=0;i<numsSize;i++)
{
if(target[index[i]]==-1)
target[index[i]]=nums[i];
else
{
back(target,index[i]);
target[index[i]]=nums[i];
}
}
return target;
}
10,14. 最长公共前缀 - 力扣(LeetCode) (leetcode-cn.com)
char * longestCommonPrefix(char ** strs, int strsSize)
{
int i=0;
int count=0;
int len=strlen(strs[0]);
for(i=1;i<strsSize;i++)
{
int len1=strlen(strs[i]);
if(len>len1)
len=len1;
}
printf("%d",len);
char* ret=(char*)malloc(sizeof(char)*209);
int j=0;
for(j=0;j<len;j++)
{
for(i=0;i<strsSize;i++)
{
if(strs[0][j]!=strs[i][j])
break;
}
if(i==strsSize)
{
ret[count]=strs[0][j];
count++;
}
if(i<strsSize)
break;
}
ret[count]='\0';
return ret;
}
11,1925. 统计平方和三元组的数目 - 力扣(LeetCode) (leetcode-cn.com)
int countTriples(int n)
{
int i=1;
int count=0;
for(i=1;i<=n;i++)
{
int j=0;
for(j=1;j<=n;j++)
{
int k=0;
for(k=1;k<=n;k++)
{
if(i*i+j*j==k*k)
count++;
}
}
}
return count;
}
基本上的思想就是暴力解题,搜索就完了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了