目录

第1题:将整数转换为两个无零整数的和

第2题:一周中的第几天

第3题:把二叉搜索树转换为累加树

第4题:连续字符

第5题:拿硬币

第6题:删除中间节点

第7题:猜数字

第8题:整数的各位积和之差

第9题:一维数组的动态和

第10题:统计位数为偶数的数字


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

第1题:将整数转换为两个无零整数的和

试题要求如下:

解答思路:

一对一对筛选,若一组数值某个数存在含0组成,则跳过该组。

回答(C语言):

/*** Note: The returned array must be malloced, assume caller calls free().*/
int* getNoZeroIntegers(int n, int* returnSize){int i = 1,j = n-1;int temp = 0;int* data_buf = (int*)malloc((2)*sizeof(int));while(i<j){temp = i;while(temp % 10 != 0){temp /= 10;}if(temp != 0){i++;j--;continue;}temp = j;while(temp % 10 != 0){temp /= 10;}if(temp != 0){i++;j--;continue;} break;      }data_buf[0] = i;data_buf[1] = j;*returnSize = 2;return data_buf;
}

运行效率如下所示:


第2题:一周中的第几天

试题要求如下:

解答思路:

1、明确起点1971.1.1 - "Friday", 用最小值避免符号运算;

2、计算从1971.1.1到(day, month, year)的天数, 需要注意中间年份会有闰年, 另外当前年份需要单独运算;

3、根据天数差值, 对7(一周7天)进行求余, 并且需要考虑起点是"Friday"(周五)的偏移。

回答(C语言):

char * dayOfTheWeek(int day, int month, int year){const char *s[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};if(year < 1971 || year > 2100) return NULL;int daysOfMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int sum = 0;for(int i = 1971; i < year; i ++){if(0 == i % 400 || (0 != i % 100 && 0 == i % 4)){sum += 366;}else{sum += 365;}}if(0 == year % 400 || (0 != year % 100 && 0 == year % 4)){daysOfMonth[1] = 29;}for(int i = 0; i < month - 1; i ++){sum += daysOfMonth[i];}sum += day - 1;return s[(sum + 5) % 7];
}

运行效率如下所示:


第3题:把二叉搜索树转换为累加树

试题要求如下:

解答思路:

在递归方法中,我们维护一些递归调用过程中可以访问和修改的全局变量。首先我们判断当前访问的节点是否存在,如果存在就递归右子树,递归回来的时候更新总和和当前点的值,然后递归左子树。如果我们分别正确地递归 root.right 和 root.left ,那么我们就能正确地用大于某个节点的值去更新此节点,然后才遍历比它小的值。

回答(C语言):

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
static void dfs(struct TreeNode* psRoot, int* pSum)
{if (NULL == psRoot){return;}dfs(psRoot->right, pSum);*pSum += psRoot->val;psRoot->val = *pSum;dfs(psRoot->left, pSum);
}struct TreeNode* convertBST(struct TreeNode* root){int sum = 0;dfs(root, &sum);return root;
}

运行效率如下所示:


第4题:连续字符

试题要求如下:

回答(C语言):

int maxPower(char * s){int i,cou = 1,num = 0,len = strlen(s)-1;char temp = s[0];for(i = 1;i <= len;i++){if(temp == s[i]){cou++;if(cou > num){num = cou;}}else{cou = 1;}temp = s[i];}if(num == 0){num = 1;}return num;
}

运行效率如下所示:


第5题:拿硬币

试题要求如下:

回答(C语言):

int minCount(int* coins, int coinsSize){int cou = 0;int temp = 0;for(int i = 0;i < coinsSize;i++){temp = coins[i];while(temp > 0){cou++;temp -= 2;}}return cou;
}

运行效率如下所示:


第6题:删除中间节点

试题要求如下:

解答思路:

将node->next指向的地址传给node,然后释放掉多余节点。

注意给出的形参不是头节点。

回答(C语言):

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
void deleteNode(struct ListNode* node) {struct ListNode *t=node->next;*node=*t;free(t);
}

运行效率如下所示:


第7题:猜数字

试题要求如下:

解答思路:

第一次在力扣做这么简单的题,判断每一位元素是否相等。

回答(C语言):

int game(int* guess, int guessSize, int* answer, int answerSize){int cou = 0;for(int i = 0;i < guessSize;i++){if(guess[i] == answer[i]){cou++;}}return cou;
}

运行效率如下所示:


第8题:整数的各位积和之差

试题要求如下:

回答(C语言):

int subtractProductAndSum(int n){int product = 1,sum = 0;for(int i = 0,num = n;num > 0;i++){product *= num%10;sum += num%10;num /= 10;}return product-sum;
}

运行效率如下所示:


第9题:一维数组的动态和

试题要求如下:

解答思路:

求取前缀和,直接对原数组求取,不用额外分配存储空间。

回答(C语言):

/*** Note: The returned array must be malloced, assume caller calls free().*/
int *runningSum(int *nums, int numsSize, int *returnSize)
{for(int i = 1;i < numsSize;i++){nums[i] = nums[i] + nums[i-1];}*returnSize = numsSize;return nums;
}

运行效率如下所示:


第10题:统计位数为偶数的数字

试题要求如下:

回答(C语言):

int findNumbers(int* nums, int numsSize){int temp = 0,cou = 0,data = 0;for(int i = 0;i < numsSize;i++){temp = nums[i];while(temp > 0){cou++;temp /= 10;}if(cou%2 == 0){data++;}cou = 0;}return data;
}

运行效率如下所示:

力扣(LeetCode)刷题,简单题(第15期)相关推荐

  1. Leetcode-How-What 力扣Leetcode刷题指南

    Leetcode-How-What 力扣Leetcode刷题指南 About the way how to use Leetcode wisely for preparing the intervie ...

  2. 力扣(LeetCode)刷题,简单+中等题(第35期)

    力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升. 第1题:解码异或后的排列 试题要求如下: 回答(C语言): /*** Note: ...

  3. 力扣(LeetCode)刷题,简单+中等题(第26期)

    目录 第1题:字典序排数 第2题:字符串解码 第3题:查找常用字符 第4题:所有奇数长度子数组的和 第5题:长按键入 第6题:分割字符串的最大得分 第7题:回文链表 第8题:有多少小于当前数字的数字 ...

  4. 力扣(LeetCode)刷题,简单题(第23期)

    目录 第1题:整数转换 第2题:重复的子字符串 第3题:范围求和2 第4题:反转数位 第5题:数字转换为十六进制 第6题:比较含退格的字符 第7题:三个数的最大乘积 第8题:珠玑妙算 第9题:旋转字符 ...

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

    目录 第1题:二进制中1的个数 第2题:打印从 1 到最大的 n 位十进制数 第3题:删除链表的节点 第4题:调整数组顺序使奇数位于偶数前面 第5题:链表中倒数第K个节点 第6题:反转链表 第7题:二 ...

  6. 力扣(LeetCode)刷题,简单+中等题(第34期)

    目录 第1题:整数转罗马数字 第2题:电话号码的字母组合 第3题:二叉树的所有路径 第4题:砖墙 第5题:下一个排列 第6题:括号生成 第7题:删除并获得点数 第8题:全排列 第9题:颜色分类 第10 ...

  7. 力扣(LeetCode)刷题,简单+中等题(第33期)

    目录 第1题:Z 字形变换 第2题:删除字符串中的所有相邻重复项 第3题:基本计算器 II 第4题:螺旋矩阵 第5题:螺旋矩阵 II 第6题:盛最多水的容器 第7题:删除有序数组中的重复项 II 第8 ...

  8. 力扣(LeetCode)刷题,简单+中等题(第32期)

    目录 第1题:数组的度 第2题:托普利茨矩阵 第3题:爱生气的书店老板 第4题:翻转图像 第5题:有效的数独 第6题:无重复字符的最长子串 第7题:区域和检索 - 数组不可变 第8题:二维区域和检索 ...

  9. 力扣(LeetCode)刷题,简单+中等题(第31期)

    目录 第1题:同构字符串 第2题:最后一块石头的重量 第3题:最小路径和 第4题:键盘行 第5题:存在重复元素 II 第6题:两数相加 第7题:三个数的最大乘积 第8题:等价多米诺骨牌对的数量 第9题 ...

最新文章

  1. socket连接 代码
  2. 一个退休程序员,用高中几何方法,让百年数学难题逼近理论极限
  3. 分享预告:「数据安全问题」+「 股权与期权」
  4. Java案例-用户注册邮箱验证将邮箱激活码存入redis功能实现
  5. ECharts - 饼状图隐藏标示线和标示文字
  6. Linux怎么对文件内容trim,Linux平台下SSD的TRIM指令的最佳使用方式(不区别对待NVMe)...
  7. C语言中总是从main函数开始执行函数吗?
  8. 【蓝桥杯嵌入式】【STM32】6_ADC之LCD实时显示电压值
  9. [Craftor整理]PCB设计参考和建议
  10. 使用am instrument验证CTS问题
  11. wincap问题之一(丢包)
  12. mongodb副本集集群中节点出现recovering状态解决办法
  13. 探索iptables BPF模块的悲惨历程
  14. 《现代密码学》学习笔记——第三章 分组密码 [三]分组密码的运行模式
  15. 爱因斯坦说过的名言,我的一些理解(一)
  16. 使用腾讯云搭建一个专属自己的网络笔记本(Leanote)
  17. CG管理软件Shotgun改为ShotGrid
  18. android11墓碑机制和addr2line使用
  19. Linux字体关联到wine中,Wine的中文显示与字体设置
  20. 安卓源代码下载相关(AOSP)

热门文章

  1. HarmonyOS 实现跑马灯效果
  2. HarmonyOS UI开发 AdaptiveBoxLayout(自适应盒子布局) 的使用
  3. 漫谈五种IO模型(主讲IO多路复用)
  4. python关于字典的操作
  5. python基础(迭代器,生成器,装饰器)
  6. 2021襄阳谷城高考成绩查询,2021高考襄阳谷城县考生求助电话
  7. Android手机指令操作释疑
  8. 知识点回顾-简单的TableView单组数据展示/多组数据展示
  9. Axure 全局辅助线(转)
  10. HDU 1248 寒冰王座(全然背包:入门题)