力扣新手村题目
1.给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:
answer[i] == "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。
answer[i] == "Fizz" 如果 i 是 3 的倍数。
answer[i] == "Buzz" 如果 i 是 5 的倍数。
answer[i] == i (以字符串形式)如果上述条件全不满足。
输入:n = 3
输出:["1", "2", "Fizz"]
解题思路:通过初始化开辟一个二级指针的数组空间,然后对1-n进行遍历,对每个i都进行%5 %3和%5 && %3将其各自的值存入到数组中,将输出常数的放到二级指针空间的一级指针当中,最后输出数组。
注:
int **p :二级指针,表示p所指向的地址里面存放的是一个指向int类型的指针(即p指向的地址里面存放的是一个指向int的一级指针)。而这里使用二级指针,是因为一级指针需要存放int类型的数,所以创建一个char型的二级指针,其二级存放char类型,而一级存放int类型。
char** fizzBuzz(int n, int* returnSize) {
char** answer = (char**)malloc(sizeof(char*) * n);
for (int i = 1; i <= n; i++)
{
if ((i % 5 == 0) && (i % 3 == 0)) {
answer[i - 1] = "FizzBuzz";
}
else if (i % 5 == 0) {
answer[i - 1] = "Buzz";
}
else if (i % 3 == 0) {
answer[i - 1] = "Fizz";
}
else {
answer[i - 1] = (char*)malloc(sizeof(char) * 8); //开辟一个八个字符的空间
sprintf(answer[i - 1], "%d", i);
}
}
*returnSize = n;
return answer;
}
2.给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。
输入:num = 14
输出:6
解释:
步骤 1) 14 是偶数,除以 2 得到 7 。
步骤 2) 7 是奇数,减 1 得到 6 。
步骤 3) 6 是偶数,除以 2 得到 3 。
步骤 4) 3 是奇数,减 1 得到 2 。
步骤 5) 2 是偶数,除以 2 得到 1 。
步骤 6) 1 是奇数,减 1 得到 0 。
思路:通过设置一个计数器,在进行while循环,来判断num是否为0,不为零则判断奇偶,奇数则num--,计数器加一,为偶数则num/2 ,计数器加一。while结束后返回计数器数值。
int numberOfSteps(int num) {
int count = 0;
while (num) {
if (num % 2 == 0)
{
count++;
num = num / 2;
continue;
}
else {
count++;
num--;
continue;
}
}
return count;
}
3.给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。
输入:accounts = [[1,2,3],[3,2,1]]
输出:6
解释:
第 1 位客户的资产总量 = 1 + 2 + 3 = 6
第 2 位客户的资产总量 = 3 + 2 + 1 = 6
两位客户都是最富有的,资产总量都是 6 ,所以返回 6 。
思路:通过两个for循环完成,最外头for循环控制i个客户,而里面的for循环控制其在j家银行里的财产,通过先默认设置一个最大值MAX,然后去遍历数组,通过跟MAX跟替换,遍历完后获得最大的财产总量客户的财产。
int maximumWealth(int** accounts, int accountsSize, int* accountsColSize) {
int MAX = 0;
int i = 0;
int j = 0;
for (i = 0; i < accountsSize; i++)
{
int sum = 0;
for (j = 0; j < *accountsColSize; j++)
{
sum = sum + accounts[i][j];
if (MAX < sum)
{
MAX = sum;
}
}
}
return MAX;
}
提交结果: