本文主要是介绍【每日刷题】Day66,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【每日刷题】Day66
🥕个人主页:开敲🍉
🔥所属专栏:每日刷题🍍
🌼文章目录🌼
1. 小乐乐改数字_牛客题霸_牛客网 (nowcoder.com)
2. 牛牛的递增之旅_牛客题霸_牛客网 (nowcoder.com)
3. 牛牛猜节点_牛客题霸_牛客网 (nowcoder.com)
1. 小乐乐改数字_牛客题霸_牛客网 (nowcoder.com)
//思路:数组。将数字每一位拆解,存入数组。遍历数组,如果为奇数将其改为1,如果为偶数将其改为0。最后将其组合为数字。
int main()
{
int n = 0;
scanf("%d",&n);
double ans = 0;
int* arr = (int*)malloc(sizeof(int)*10);
int count = 0;
while(n)
{
arr[count++] = n%10;//存储数字每一位
n/=10;
}
for(int i = count-1;i>=0;i--)
{
if(arr[i]%2)//改为0或1
arr[i] = 1;
else
arr[i] = 0;
}
for(int i = count-1;i>=0;i--)
{
ans = ans*10+arr[i];//重新组合为数字
}
printf("%d",(int)ans);
return 0;
}
2. 牛牛的递增之旅_牛客题霸_牛客网 (nowcoder.com)
//思路:哈希表。以链表的元素为key,将其val置为1,不论有多少个重复的元素都只记1。遍历哈希表,将val为1的下标存入新链表中返回。
typedef struct ListNode LN;
struct ListNode* removeDuplicates(struct ListNode* head )
{
int hash[10] = {0};
LN* pmove = head;
while(pmove)
{
hash[pmove->val] = 1;//重复元素独立化
pmove = pmove->next;
}
LN* newhead = (LN*)malloc(sizeof(LN));
pmove = newhead;
for(int i = 0;i<10;i++)
{
if(hash[i])//将哈希表中为1的元素存入新链表
{
LN* newnode = (LN*)malloc(sizeof(LN));
newnode->val = i;
newnode->next = NULL;
pmove->next = newnode;
pmove = pmove->next;
}
}
return newhead->next;
}
3. 牛牛猜节点_牛客题霸_牛客网 (nowcoder.com)
//思路:动态规划。类似于斐波那契数列求下一个数的思路。
int findNthValue(int first, int second, int n )
{
if(n==1)
return first;
if(n==2)
return second;
int ans = 0;
while(n-2)
{
ans = first+second;
first = second;
second = ans;
n--;
}
return ans;
}
这篇关于【每日刷题】Day66的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!