printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。 注意宽度输出和精度输出控制。C语言借助了相应的缓冲区来进行输入与输出。...C++ 流是指信息从外部输入设备(如键盘)向计算机内部(如内存)输入和从内存向外部输出设备(显示器)输出的过程。这种输入输出的过程被形象的比喻为“流”。它的特性是:有序连续、具有方向性。...在线 OJ 中的输入和输出: 对于 IO 类型的算法,一般都需要循环输入; 输出:严格按照题目的要求进行,多一个少一个空格都不行; 连续输入时,vs 系列编译器下在输入 ctrl+Z 时结束...,也就是浅拷贝问题,相当于两个结构体对象中的 string 都指向同一个空间,所以会出现析构两次的情况。...使用 itoa() 函数 使用 sprintf() 函数 但是两个函数在转化时,都得需要先给出保存结果的空间,那空间要给多大呢,就不太好界定,而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃。
1到最大的n位数 面试题13:在O(1)的时间删除链表结点 面试题14:调整数组顺序使奇数位于偶数前面 面试题15:链表中倒数第k个结点 面试题16:反转链表 面试题17:合并两个排序的链表 面试题18...24:判断数组是否符合二叉搜索树的后序遍历序列 面试题25:二叉树中和为某一值得路径 面试题26:复杂链表的复制 面试题27:二叉搜索树转换为排序的双向链表 面试题28:打印字符串中字符的所有排列 面试题...面试题35:第一个只出现一次的字符 面试题36:数组中的逆序对 面试题37:两个链表第一个公共结点 面试题38:数字在排序数组中出现的次数 面试题39.1:二叉树的深度 面试题39.2:判断二叉树是否为二叉平衡树...面试题40:数组中只出现一次的数字(除两个数字外,其余都出现两次) 面试题41.1:递增排序数组中查找和为s的两个数 面试题41.2:打印出和为s的连续正数序列 面试题42.1:翻转单词顺序,但单词中字符顺序不变...面试题42.2:实现字符串左旋转功能 面试题43:打印出n个骰子点数s所有可能出现的概率 面试题44:随机抽5张牌是不是连续的(大小王可看成任意数字) 面试题45:圆圈中最后剩下的数字 面试题46:不使用乘除
请注意,这里有个术语: (1)在定义函数时给定的参数名称,称作“形参”Parameters), (2)在调用函数时,给函数提供有值的参数,称作“实参”(Arguments)。...请注意,函数print_num有两个形参a和b。我们在调用这个函数时,(有值的)实参是按先后顺序来给形参传值的,也就如上面的2和x是传给a的,4和y是传给的。...调用函数显示x和直接显示x的值 func_3(x) print('函数外部变量x的值:', x) #第三次打印 说明:请注意,这个示例中在函数的外部和内部同时创建的两个名为x的变量,但他们本质上并不是同一个变量...(2)第二次打印,输出是被修改后的x值(5)。 (3)第三次是一个打印语句,输出的然是x的当前值(5),已被函数修改。 5、函数的默认参数 函数的参数,本质上就是变量。...在一些高级的代码编辑器中,调用函数时,我们将鼠标移动到函数名称上,就会帮我们显示这个函数描述文本,给我们编写代码带来极大的便利。因此,我们应该尽可能的习惯使用函数的文档字符串。
,同一层中按照从左往右的顺序打印。 ...注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。 请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。...例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串, 则输出它们的长度4,并打印任意一个子串。...(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?) 98.第2组微软面试题 1.给出一个函数来输出一个字符串的所有排列。 2.请编写实现malloc()内存分配函数功能一样的代码。...3.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。 4.怎样编写一个程序,把一个有序整数数组放到二叉树中? 5.怎样从顶部开始逐层打印二叉树结点数据?
示例 1: 输入: "abab" 输出: True 解释: 可由子字符串 "ab" 重复两次构成。...(或者子字符串 "abcabc" 重复两次构成。) 思路 这又是一道标准的KMP的题目。 我们在字符串:都来看看KMP的看家本领!里提到了,在一个串中查找是否出现过另一个串,这是KMP的看家本领。...「强烈建议大家把next数组打印出来,看看next数组里的规律,有助于理解KMP算法」 如图: ?...代码如下: C++代码 class Solution { public: // KMP里标准构建next数组的过程 void getNext (int* next, const string...然后通过字符串:都来看看KMP的看家本领!讲解一道KMP的经典题目,判断文本串里是否出现过模式串,这里涉及到构造next数组的代码实现,以及使用next数组完成模式串与文本串的匹配过程。
,其中最后一个字符是\0 使用时需注意: 数组长度和字符串长度是两个不同的概念,strlen计算字符串长度时,char ch[]=“'b','i','t'”,在计算其长度时,由于没有\0,找不到结束标志...,因此计算其长度时打印出来的是随机值。... 二维数组在内存中的存储:有下图所示代码我们可以惊奇地发现,二位数组的地址在内存中竟然也是连续存放的。...也就是说,只要拿到第一个元素的地址,后面的元素都可以打印出来,如下图实例所示: 三、数组重点知识点 在学习scanf函数时,我们了解到了数组名不用取地址,因为数组名本身就是首元素的地址,所以在需要打印数组首元素地址时直接打印数组名即可...数组名在实际使用中有两个例外 1.sizeof(数组名)--数组名表示整个数组--计算的是整个数组的大小--单位是字节 2.
参考链接: C++ fputs() 已经有大约半年的时间没有碰C语言了,当时学习的时候记录了很多的笔记,但是都是特别混乱,后悔那个时候,不懂得写博客,这里凭借记忆和零零散散的笔记记录,尝试系统性地复习一下... 注释 //叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和解释,这样有利于代码的阅读/* */叫块注释块注释是C语言标准的注释方法行注释是从C++语言借鉴过来的 return...当strtok()在参数s的字符串中发现参数delim中包含的分割字符时, 则会将该字符改为\0 字符,当连续出现多个时只替换第一个为\0。...同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。 数组属于构造数据类型: 一个数组可以分解为多个数组元素:这些数组元素可以是基本数据类型或构造类型。 ...关于二维数组: 二维数组在概念上是二维的:其下标在两个方向上变化,对其访问一般需要两个下标。
注释 //叫行注释,注释的内容编译器是忽略的,注释主要的作用是在代码中加一些说明和解释,这样有利于代码的阅读 /* */叫块注释 块注释是C语言标准的注释方法 行注释是从C++语言借鉴过来的 return...当strtok()在参数s的字符串中发现参数delim中包含的分割字符时, 则会将该字符改为\0 字符,当连续出现多个时只替换第一个为\0。...类型转换的原则:占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。 C语言的数组和字符串 数组相关 数组就是在内存中连续的相同类型的变量空间。...同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。 数组属于构造数据类型: 一个数组可以分解为多个数组元素:这些数组元素可以是基本数据类型或构造类型。...关于二维数组: 二维数组在概念上是二维的:其下标在两个方向上变化,对其访问一般需要两个下标。
GBDT和LSTM,所以这两个知识点是几乎逢面必问便导致其他机器学习深度学习知识点就问的比较少,所以我主要贴出我面试中遇到的部分代码题,供大家参考。...百度: 一面:1、一个数组中只有两个数字只出现了一次,其他都是两次,找出这两个数字(异或方法)。2、二叉树中找出两个结点的最近公共祖先。3、画出LSTM网络结构,写出GBDT过程。...搜狐(实习): 一面:输入一个表达式字符串,输出该表达式的值(递归方法)。 二面:反转字符串,用c++做。...滴滴外卖(实习): 一面:1、组合,一个数组中有重复元素,输出包含k个元素的所有组合,时间复杂度要低。2、找一个无序数组的中位数,时间复杂度尽可能优化。...三面:任意给定一个凸多边形,用一条连续的线段将这个凸多边形分成面积相等的两部分(这两部分也是连续的两部分),只能用尺规作图,即只能画线段、取中点、画平行线等操作。
,%5.3s指的是域宽为5,但是只打印三个字符,不足的地方用空格来填充 最后答案选:B ---- 在头文件及上下文均正常的情况下,下列代码的运行结果是() int a[] = {1, 2, 3,...有语法错,不能正确执行 D. %%%% 转义字符是我没想到的,两个%只能输出一个%,所以答案选A ---- C++ 中,有如下类模板定义: 已知 b1, b2 是 BigNumber 的两个对象,...个元素,求连续子数组的最大和。...输出描述:所有连续子数组中和最大的值。...,那么就说明比这个数大的数放进来也不会是幸运的,那么此时就打断回溯 4.回溯以后进行去重,如果有两个一样的数,就不能再将这个数作为开头了,否则会将两个重复的结果作为两次输出,而且因为前面排序的原因,不用担心会有
== 比较的是它们的地址是否相同,这个程序分别输出的是 true、false、false,也就是说a b 是指向的同一个地址空间,而c则不是。...在C中如果我们写下这样的代码: char* psz1 = "abc"; char* psz2 = "abc"; 那么在程序加载到内存中时,在全局数据段中会存在一个连续的内存空间保存的是 'a','b',...它的使用十分的简单,与C/C++中数组的使用基本相同,注意事项也是基本相同。...+ c来退出sc.next的输入 > ctrl+c //输出 >hello world python java c++ c lisp 上述代码首先执行到sc.next 位置,并且中断下来,我们输入上述的一些字符串...当没有值时,程序会再次中断在sc.next() 的位置,这个时候输入 ctrl + c ,此时程序再次执行到 sc.hasNext() 这个地方会返回false,这个时候循环退出,并依次打印这些内容。
int -> float、long -> float、long -> double 可能丢失精度 二元操作需要将两个操作数转为同一类型。...注意: 一定不要使用 == 检查两个字符串是否相等!这只能判断两个字符串是否放在同一内存位置上。虽然放在同一位置上的字符串必然相等,但是完全有可能将内容相同的多个字符串拷贝防止在不同的位置上!...3.7.2 格式化输出 幸运的是,Java沿用了C/C++的标准输入输出printf(),在Java中是System.out.printf()方法。...文件输出:同理,构造一个打印流对象即可。...C/C++中,多维数组中的所有数据通常也是连续摆放在内存的一片区域中的,而Java中的数组更像是“数组的数组”,例如二维数组a引用的内存中,其实保存的是row个一位数组的引用。
HOLEY_ELEMENTS PACKED 翻译为打包,实际意思是 “连续有值的数组”;HOLEY 翻译为孔洞,表示这个数组有很多孔洞一样的无效项,实际意思是 “中间有孔洞的数组”,这两个名词是互斥的...SMI 表示数据类型为 32 位整型,DOUBLE 表示浮点类型,而什么类型都不写,表示数组的类型还杂糅了字符串、函数等,这个位置上的描述也是互斥的。.../test.js --allow-natives-syntax 同时,在 test.js 里使用 %DebugPrint 打印我们要调试的数组,如: const arr = [] %DebugPrint...实际上这两种模式是根据固定规则相互转化的,具体查了下 V8 源码: 字典模式在 V8 代码里叫 SlowElements,反之则叫 FastElements,所以要看转化规则,主要就看两个函数:ShouldConvertToSlowElements...也就是说,我们在随意创建数组的时候,V8 会分析数组的元素构成与长度变化,自动分发到各种不同的子模式处理,以最大化提升性能。
1.使用new和delete 不要使用delete来释放不是new分配的内存。 不要使用delete释放同一块内存两次 如果使用new[]为数组分配内存,则应使用delete[]释放。... 在多数情况下,c++将数组名视为数组的第一个元素的地址。...注:仅当两个指针指向同一个数组(也可以指向超出结尾的的一个位置)时,这种运算才有意义 int tacos[10]={1,2,3,4,6,7,9,8,10}; int * pt = tacos;... 在cout和多数c++表达式中,char数组名、char指针以及用引号括起来的字符常量都被解释为字符串第一个字符的地址。...自动变量通常存储在栈中。(这意味着在执行代码的时候,其中的变量依次加入到栈中,而在离开代码块时,将按反方向释放这些变量,即后进先出FILO)。
当i的值不为1且i的值也不为2时,我们执行的是一对一的输出,可以看到结果展示每一个输入的值都能得到一个输出,并且同一个输入能得到同一个输出; 当i的值为2时,我们执行的是多对一的输出,这时需要输入第二个变量...j,从结果中可以看到当满足i==2这个条件时,不管j的值为多少,我们都能得到hello的打印结果; 当i的值为1时,我们执行的是一对多的输出,我们通过rand函数与srand函数生成随机数使数组的下标随机...,在这种情况下同一个i值得到的结果却是截然不同的; 我们现在从算法确定性的角度来分析,那么对于输出数组元素这个内容的实现显然就不满足算法的确定性;为了实现输出数组元素的功能,我们可以如下进行代码编写:...理解 对于一个好的算法,能够让大家很好的理解每一句代码的含义,比如我要实现两个整数的互换: 在这个代码中我们很容易理解每一句代码的含义,我们在进行输入后,第一次输出的值就是我们输入的值,我们通过第三个变量...理解 对于健壮性,我们可以通过switch语句来进行理解: 在这个代码中,我们通过多组输入的方式来进行连续的输入,如果输入的值都为整型,则可以进入循环执行分支语句,但是当输入的值不是整型时,则结束循环打印
来源:公众号【编程珠玑】 作者:守望先生 ID:shouwangxiansheng 这个问题源于读者在阅读redis源码时的一个疑问。...先看下面的代码,对于包含动态字符串成员的两个结构体Test0和Test1占用空间分别是多少呢?...(关于字节对齐,参考《字节对齐,看这篇就懂了》) 柔性数组(flexible array) 实际上这是在C99中引入的柔性数组的特性。...前者需要两次内存申请,而后者只需要一次。前者地址不连续(两次malloc),后者地址连续。而你访问成员c的时候,只需要下面这样就可以: t1->c,和普通成员无异。...要判断它们的地址是否连续也非常简单,只需要分别打印b和c的地址就可以了。 和内存释放类似,前面需要单独释放成员c申请的内存,而后者可以一起释放。
方法一:题目没有考虑到时间复杂度,这里最简单粗暴的就是将两次输入的数据放在一个m+n的数组里,然后再进行冒泡排序。...如下: #include //有序序列合并 //把两次输入的都放到同一个数组,然后对它进行冒泡排序 int main() { int n = 0; int m = 0...,然后进行比较,将数据小的元素输出,然后下标++,但是需要考虑到两种特殊情况,就是一个数组已经输出完了,另一个还没输出完,完整实现代码如下: #include int main()...思路:最简单的思路就是与上面相同,将插入的数放在同一个数组,然后直接qsort或者冒泡排序,简单粗暴。...,实现一个函数, 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分 所有偶数位于数组的后半部分 思路:这里题目没有说要保持相对位置不变,所以我们只需要将偶数与奇数分离即可 定义两个指针
注意:数组名 a 可以作数组的首地址,而&a 是数组的指针。思考,将原式的 int *ptr=(int *)(&a+1); 改为 int *ptr=(int *)(a+1);时输出结果将是什么呢?...一个 C、C++程序编译时内存分为 5 大存储区:堆区、栈区、全局区、文字常量区、程序代码区。...面试题 17:简述类成员函数的重写、重载和隐藏的区别 (1)重写和重载主要有以下几点不同。 范围的区别:被重写的和重写的函数在两个类中,而重载和被重载的函数在同一个类中。...面试题 19:链表和数组有什么区别 数组和链表有以下几点不同: (1) 存储形式:数组是一块连续的空间,声明时就要确定长度。链表是一块可不连续的动态空间,长度可变,每个结点要保存相邻结点指针。...面试题 39:流操作符重载为什么返回引用 在程序中,流操作符>>和<<经常连续使用。因此这两个操作符的返回值应该是一个仍旧支持这两个操作符的流引用。其他的数据类型都无法做到这一点。
基于String类库的方法 存储在连续字节中的一系列字符意味着可以将字符串存储在char数组中。其中每个字符都位于自己的数组元素中。...❌警告:不能创建两个指向同一个内存块的指针。会增加错误地删除同一个内存块两次的可能性。 7.5 使用new创建动态数组 C++中,创建动态数组,只需要将数组的元素类型和元素数目告诉new即可。...对于指针数组的使用,直接可以按照普通数组的使用即可。 7.6 使用new和delete时,要遵循的规则 不要使用delete来释放不是new分配的内存。 不要使用delete释放同一个内存块两次。...也可以将一个指针减去另一个指针,获得两个指针的差。得到一个整数,仅当两个指针指向同一个数组(也可以指向超出结尾的一个位置)时,这种情况会得到两个元素的间隔。...8.4 C++管理数据内存的方式 自动存储 在函数内部定义的常规变量使用自动存储空间,称为自动变量。只在特定函数被执行时存在。 自动变量时一个局部变量,作用域为包含它的代码块。
如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。 进阶: 请选用 C 语言的用户尝试使 ,意思是说原地反转。 输入: " hello world! " 输出: "world!...示例 3: 输入: "a good example" 输出: "example good a" 解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。...这个题目试着这里开始入手 算法五个重要的特征: 有输入,有输出(题目已经给了) 可行性(复杂问题转化成熟悉子问题) 有穷性(在算法描述体现) 确切性(在算法描述体现) ?...在反转前消除空格 最终转化成在同一个连续空间,移动copy字符串问题。 不同空间肯定没有问题,同一个空间呢?内存重叠呢? 解决了:数组特点 地址空间连续,删除一个元素,后面整体一定问题。...非空 第三步:反转一个句子 三、代码 放轻松,虽然是c++实现,拒绝奇技淫巧,通俗易懂。
领取专属 10元无门槛券
手把手带您无忧上云