面试题
hodgeKou
这个作者很懒,什么都没留下…
展开
-
466. 统计重复个数 golang[转]
转载(mark)https://blog.by24.cn/archives/leetcode-count-the-repetitions.htmlfunc getMaxRepetitions(s1 string, n1 int, s2 string, n2 int) int { len1, len2 := len(s1), len(s2) index1, index2 := 0, 0 //...转载 2020-04-19 10:46:47 · 364 阅读 · 0 评论 -
leetcode内存消耗
leetcode内存消耗最是多少执行用时 :0 ms, 在所有 Go 提交中击败了100.00%的用户内存消耗 :1.9 MB, 在所有 Go 提交中击败了94.81%的用户测试链接Test原创 2020-01-30 22:02:49 · 3653 阅读 · 0 评论 -
排序算法<2>归并排序
文章没有解释和代码注释,代码经改进,做成了好理解,关键是好记忆的方式进行书写。用于自己进行查阅#include <stdio.h>#include <string.h>void merge(int arr1[],int left ,int mid ,int right){ int arr2[8]; int i = left ; int...原创 2018-09-06 11:51:55 · 122 阅读 · 2 评论 -
堆排序面试
文章没有解释和代码注释,代码经改进,做成了好理解,关键是好记忆的方式进行书写。用于自己进行查阅#include <stdio.h>void swap(int arr[],int i,int j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;}void heapify(int arr[]...原创 2018-09-06 12:25:32 · 172 阅读 · 1 评论 -
有一个小白程序员,写了一个只能对5个数字进行排序的函数,现在有25个不重复的数字,
题目:有一个小白程序员,写了一个只能对5个数字进行排序的函数,现在有25个不重复的数字,请问小白同学最少调用几次该函数,可以找出其中最大的三个数?A.5B.6C.7D.8答案:C解析:第一步:25人分为5组调用,分别排序,调用5次第二步:取出5组中的最大数,排序,调用1次第三步:将第二步排序中最大的三组取出,假设为A,B,C,从第二步已知A[1]&gt;B[1]&gt;C[1],不...原创 2018-09-23 14:16:44 · 4164 阅读 · 0 评论 -
A B C类IP地址的判断
IP地址131.153.12.71是一个()类IP地址。IP地址分类A类网络的IP地址范围为1.0.0.1-127.255.255.254; B类网络的IP地址范围为:128.1.0.1-191.255.255.254; C类网络的IP地址范围为:192.0.1.1-223.255.255.254。只看前面八位ABC0 ~ 127128 ~ 1911...原创 2018-09-21 15:17:03 · 6861 阅读 · 0 评论 -
IP地址=192.168.127.101,子网掩码255.255.255.192,计算网络地址,主机号,广播地址和主机最大数
纯手写,如果哪写错了,还希望指正IP地址=192.168.127.101,子网掩码255.255.255.192,计算网络地址,主机号,广播地址和主机最大数255.255.255.192子网掩码转换成二进制为11111111.11111111.11111111.11000000IP地址转换成二进制后为11000000.10101000.01111111.01100101与运算后得11...原创 2018-09-21 15:14:24 · 22218 阅读 · 7 评论 -
初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为
初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:()8 3 2 5 1 6 4 73 2 8 5 1 4 6 73 8 2 5 1 6 7 48 2 3 5 1 4 7 6A...原创 2018-09-23 14:25:15 · 16385 阅读 · 0 评论 -
设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70)进行一趟归并后的结果为
设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序子表,则用归并排序的方法对该记录关![在这里插入图片描述](https://img-blog.csdn.net/20180923151824822?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NzZG5fa291/font/5...原创 2018-09-23 15:19:57 · 23225 阅读 · 1 评论 -
文字常量区和栈区考点
求以下程序输出结果 #include &lt;stdio.h&gt;char * fun1(){ char * str = "hello"; return str;}char * fun2(){ char str[] = "world"; return str;}int main(){ printf("%s\n", fun1());原创 2018-09-23 15:32:27 · 265 阅读 · 0 评论 -
一条语句判断数x是否2的n次幂.求取二进制1的个数
一条语句判断数x是否2的n次幂return !(x &amp;amp;amp; (x - 1));求取十进制数字元素1的个数int fun(int x){int count = 0;int i, j, k;/方法2 负数不可计算,需要改进/while (x != 0){if (x &amp;amp;amp; 1 == 1)count++;x = x &amp;amp;gt;&amp;amp;gt; 1;}/方法1/原创 2018-09-23 16:32:40 · 265 阅读 · 0 评论 -
动态规划学习笔记<1>
求连续子数组的最大和问题代码不重要!重要的是思想过程(括弧 好难啊!!!)输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},输出连续子数组的最大和是18。步骤操作累加的子数组和最大的子数组和1+1112-2-113抛弃前面的(+1 - 2 ) ,加3334+1013135...原创 2018-09-23 17:44:38 · 204 阅读 · 0 评论 -
判断栈的压入和弹出
序列1,2,3,4,5是压栈序列。序列 4,3,5,1,2是弹出序列。判断第二个是不是弹出序列三步走如果下一个弹出的数字刚好是栈顶数字,直接弹出如果不在栈顶,就一直把第一个数组的数字入栈,直到要把下一个要弹出的数字压入栈如果所有数字都入栈完毕,还没有找到下一个弹出的数字,则就不可能是一个弹出序列放大看原图笔试代码bool IsfPopOrder(const int *pPush...原创 2018-09-23 16:13:56 · 1012 阅读 · 0 评论 -
大数据多路归并算法
https://blog.csdn.net/wongson/article/details/49209903先把一个大的数据分成若干小份,然后对这些小份文件进行排序。排序好之后对这些小份文件进行如下处理。我们举个简单的例子:文件1:3,6,9 文件2:2,4,8 文件3:1,5,7第一回合: 文件1的最小值:3 , 排在文件1的第1行 文件2的最小值:2,排在文件2的第1行...转载 2018-08-22 13:16:12 · 1555 阅读 · 0 评论 -
蛇形数组打印(两种形式)
蛇形数组打印第一种形式形式15 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9请按任意键继续. . .形式25 13 14 15 16 ...原创 2018-05-19 09:04:36 · 1528 阅读 · 0 评论 -
输出一个整数的每一位(3种方法)
1.使用数组按个数输入再按照个数输出 int i, j, k, num, count; int a[10]; printf("几位数\n"); scanf("%d", &k); for (i = 1; i <= k; i++) { scanf("%d", &a[i]); } for (i = k; i >= 1; i--) { prin...原创 2018-03-30 12:02:51 · 21115 阅读 · 0 评论 -
把student a am i 变成 i am a student(两种方法)
student a am i 变成 i am a student方法1:指针方法2:数组student a am i 变成 i am a student方法1:指针#include &amp;lt;stdlib.h&amp;gt;#include &amp;lt;stdio.h&amp;gt;#include &amp;lt;string.h&amp;gt;void f原创 2018-05-01 19:01:13 · 2971 阅读 · 0 评论 -
动态规划学习笔记<2>
题目描述:在一个m×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能拿到多少价值的礼物?代码很简单int* maxValues = new int[cols];for(int i = 0; i < rows; ++i){ fo...原创 2018-09-23 22:00:03 · 286 阅读 · 0 评论 -
动态规划学习笔记<3>
某工厂预计明年有A、B、C、D四个新建项目,每个项目的投资额Wk及其投资后的收益Vk如下表所示,投资总额为30万元,如何选择项目才能使总收益最大?ProjectWkVkA1512B108C129D85声明一个 二维数组m[ i ][ j ] 表示 在面对第 i 件物品,且背包容量为 j 时所能获得的最...原创 2018-09-24 15:18:45 · 1010 阅读 · 0 评论 -
二叉树的层序遍历,前序遍历(递归,非递归),中序遍历(递归,非递归),后续遍历(递归,非递归)
二叉树的层序遍历void printTree(BinaryTree* arr[]){ queue&amp;lt;BinaryTree*&amp;gt; rel; rel.push(arr[0]); while (!rel.empty()) { BinaryTree* front = rel.front(); printf(&quot;%d\n&quot;, front-&amp;gt;vec); r原创 2018-09-24 15:46:27 · 309 阅读 · 0 评论 -
牛客网选择题之并发
在分时操作系统中,进程调度采用()算法时间片轮转某系统中有 3 个并发进程,都需要同类资源 4 个,试问该系统不会发生死锁的最少资源数是:9有n个进程,共享的同类资源数为m,则避免死锁的最少资源数是n .(m-1)+1。3个进程需要各需要占用3个资源,因此当有9个资源时,刚好够分别分给这3个进程,但是这3个进程都还需要第4个资源,因此至少需要10个资源,才不会使其陷入死锁。有n个进程,共...原创 2018-09-30 20:15:43 · 3562 阅读 · 0 评论 -
牛客网选择题之linux
1.在RHEL5系统中,小王希望将他执行的ls命令的输出结果保存在当前目录下文件output.ls中,以供日后进行分析和使用,但要求不覆盖原文件的内容,他应该使用的命令是( )ls>>output.ls> 输出重定向到一个文件或设备 覆盖原来的文件>! 输出重定向到一个文件或设备 强制覆盖原来的文件>&g...原创 2018-09-30 20:56:49 · 1102 阅读 · 0 评论 -
Manacher算法图解
看了好久的Manacher算法,觉得还是要自己画一遍,自己把代码写一遍才能理解下面分享一下,如果有错,希望指正简陋版本的,但是他基本只是做到了求取最长回文字符串,严格来说它并不是Manacher’s Algorithm-马拉车算法#include&lt;stdio.h&gt; 、char qdu[100050];int manachar(){ int i; int res =...原创 2018-10-01 18:31:43 · 12731 阅读 · 2 评论 -
fork()请问下面的程序一共输出多少个“A”?多少个"-"?
fork()题目:请问下面的程序一共输出多少个“-”? #include #include #include int main(void) { int i; for(i=0; i&lt;2; i++){ fork(); printf("-"); } return 0; } 解析:一共输出8个。首先程序一开始,bash产生一个进程P1执行此程序,P1...转载 2018-10-11 18:04:07 · 1864 阅读 · 1 评论 -
链表面试大全
这里处理的全部是单链表:typedef struct node { char *data; struct node *next; } node_t;我们约定一个打印链表的函数:void list_display(node_t *head){ for (; head; head = head->next) printf("%s ",...原创 2018-09-28 22:47:37 · 267 阅读 · 0 评论 -
KMP算法的举例加图解
文章出处:阮一峰举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?首先,字符串"BBC ABCDAB ABCDABCDABDE"的第一个字符与搜索词"ABCDABD"的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。因为B与A不匹配,搜索词再往后移。就这样,直到字符串有一个字符,与搜索词的第一个...转载 2018-09-28 23:27:21 · 6344 阅读 · 6 评论 -
排序稳定性的意义
首先,为什么会有排序算法稳定性的说法?只要能排好不就可以了吗?看例子第1行是数字2 记作 1 2第2行是数字4 记作 2 4第3行是数字2 记作 3 2排序后的结果(如果看不懂命令的意思,参照这个博客) 那么引入我们的问题,有没有可能排序结果是这样子排序的结果是正确的,可是它却打乱了原本的文件顺序。那么在什么场景会出现这种情况呢?我们在管理数据的时候,比如有ID...原创 2018-10-08 11:07:06 · 6577 阅读 · 7 评论 -
大端小端详解
大端:低位放在高地址,高位放在低地址小端:低位放在低地址,高位放在高地址11223344面试考点:1.阐述概念2.写一个程序判断当前机器是大端还是小端代码#include &amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;lt;stdlib.h&amp;amp;amp;amp;gt;int check_sy原创 2018-05-08 19:48:51 · 1862 阅读 · 0 评论 -
LRU缓存算法缓存设计和实现
什么是缓存?举个例子,去图书馆查资料,一般情况下我们会集中把我们有可能查阅的几本书从书架取下来,放在我们的桌面上,以便交叉查阅,从而避免频繁的从座位上跑到书架旁去取书。在这个例子里,书桌所扮演的就是缓存的角色。缓存有两个特点:能在某种程度上降低访问数据的成本;其容量远小于外部存储的容量,如本例子中,书桌上能容纳的书本数就远小于书架的。什么是 LRU 缓存?LRU 缓存是一种以 LR...原创 2018-09-30 16:46:38 · 1050 阅读 · 0 评论