![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Coding Interview
小灏灏同学
这个作者很懒,什么都没留下…
展开
-
Leetcode #7整数反转 C++
题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 分析 有两种思路,第一种是数学运算(包括对10的取余、取商等运算),第二种是先转化为字符串再反转(值得尝试一下)。但是后者需要用到较多库函数,效率较低。 选用数学运算方式,最困难的地方是注意溢出条件。 (转自leetcode上的用户:灵魂画师牧码,详情请点击此处)溢出条件有两个,一个是大于整数最大值MAX_VALUE...原创 2019-12-18 12:10:01 · 134 阅读 · 0 评论 -
C语言实现《剑指offer》——12打印1到最大的N位数(注释详尽)
本篇是第12题_打印1到最大的N位数的C语言实现: 题目描述: 给定一个数字N,打印从1到最大的N位数。 输入: 每个输入件仅包含一组测试样例。 对于每个测试案例,输入一个数字N(1<=N<=5)。 输出: 对应每个测试案例,依次打印从1到最大的N位数。 样例输入: 1 样例输出: 1 2 3 4 5 6 7 8 9 分析 考虑大数问题,即当输入的数字的最大N超过了int、long ...原创 2019-04-24 11:41:10 · 236 阅读 · 0 评论 -
C语言实现《剑指offer》——11数值的整数次方
本篇是第11题_数值的整数次方的C语言实现: 题目描述:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 需要注意的点: scanf()在扫描double的时,应该使用"%lf";而在printf()时,“%f”和“%lf”都可以; 注意指数为负以及底数为0这些特殊情况的处理。 代...原创 2019-04-22 20:07:06 · 286 阅读 · 0 评论 -
C语言实现《剑指offer》——10_二进制中1的个数(两种方法实现)
本篇是10_二进制中1的个数的C语言实现: 题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 本文采用两种方式实现,我称他们为normal方法和surprise方法,他们的区别如下: normal使用的是循环移位,因为考虑到有符号数负数右移,左边空位补1的情况,因此定义了一个无符号的flag初始化为1,并让flag循环左移,与输入相与,便能得到输入中1的个数。这种办法属...原创 2019-04-22 19:57:19 · 285 阅读 · 0 评论 -
C语言实现《剑指offer》——09_斐波那契数列(循环实现,效率远高于递归)
本篇是第9题_斐波那契数列的C语言实现: 题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 用递归方法实现的代码量很小,但是时间复杂度是O(n^2),本文采用循环实现,时间复杂度降为O(n). 代码如下: #include <stdio.h> #include <stdlib.h> unsigned long long ...原创 2019-04-22 19:45:48 · 396 阅读 · 0 评论 -
C语言实现《剑指offer》——08旋转数组中的最小数字
本篇是第8题_旋转数组中的最小数字的C语言实现: 题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元 素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 代码如下: #include <stdio.h> #include <stdlib.h> #defin...原创 2019-04-22 19:38:54 · 264 阅读 · 0 评论 -
C语言实现《剑指offer》——07用两个栈实现队列(注释详尽)
本篇是第7题_用两个栈实现队列的C语言实现: 题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 #include <stdio.h> #include <string.h> #define N 1000 int main (int argc, char *argv[]) { freopen("sample.txt","r",stdin); int Op...原创 2019-04-22 19:34:11 · 342 阅读 · 0 评论 -
C语言实现《剑指offer》——06重建二叉树(注释详尽)
本篇是第6题_重建二叉树的C语言实现: 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入 前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。 //前序遍历第一个节点确定根节点,然后在中序遍历中寻找根节点,从而确定左、右子树,对左右子树...原创 2019-04-22 19:28:29 · 963 阅读 · 2 评论 -
C语言实现《剑指offer》——05从尾到头打印链表
本篇是第5题_从尾到头打印链表的C语言实现: 题目描述:输入一个链表,从尾到头打印链表每个节点的值。 解法1:链表倒序的数组实现 #include<stdio.h> #include<stdlib.h> #define N 1000 typedef struct node // 复习typedef的基础知识!!!!!!! { int data; struct ...原创 2019-04-22 16:58:44 · 503 阅读 · 0 评论 -
C语言实现《剑指offer》——04替换空格
本篇是第4题_替换空格的C语言实现: 题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 代码如下: #include<stdio.h> #include<string.h> #define N 1000 void ReplaceBlank(char*,in...原创 2019-04-22 16:26:30 · 239 阅读 · 0 评论 -
C语言实现《剑指offer》——03二维数组中的查找
一直以来都想有个自己的技术博客,但始终没有明确自己的技术方向,今天学学python明天看看java的,很迷茫。经历了研二下学期两个月以来的找实习过程,终于想明白了自己要坚持的技术路线:嵌入式全栈工程师,从"嵌入式应用层软件"到"Linux驱动"再到“Linux操作系统与内核”。要学习和掌握的内容很多,但在强烈的好奇心驱使下,这反而是一件令人兴奋的事,因为花时间去领略前辈们在这个领域留下的精彩,本就...原创 2019-04-21 17:53:47 · 660 阅读 · 0 评论