面试题
心文花雨
这个作者很懒,什么都没留下…
展开
-
链表是否是回文结构
链表是否是回文结构 Go实现原创 2022-06-20 09:57:23 · 238 阅读 · 0 评论 -
合并k个已排序的链表
合并k个已排序的链表Go实现原创 2022-06-13 09:59:20 · 150 阅读 · 0 评论 -
输入 www.baidu.com 会发生什么
1. DNS解析域名,本地有则请求,没有则向上级DNS服务器请求浏览器缓存 –浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。 系统缓存– 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路...原创 2020-02-20 19:23:45 · 237 阅读 · 0 评论 -
动态规划-回文串分割
题目链接:https://www.nowcoder.com/practice/1025ffc2939547e39e8a38a955de1dd3?tpId=46&tqId=29048&tPage=1&rp=1&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking一、题目描述给出一个字符串s,分割s使得分割出...原创 2019-09-16 20:06:02 · 498 阅读 · 0 评论 -
动态规划-背包问题
一、题目描述有n个物品和一个大小为m的背包. 给定数组A表示每个物品的大小和数组V表示每个物品的价值,问最多能装入背包的总价值是多大?样例样例 1:输入: m = 10, A = [2, 3, 5, 7], V = [1, 5, 2, 4]输出: 9解释: 装入 A[1] 和 A[3] 可以得到最大价值, V[1] + V[3] = 9 样例 2:输...原创 2019-09-16 19:42:29 · 167 阅读 · 0 评论 -
动态规划-字符串分割
题目链接:https://www.nowcoder.com/practice/5f3b7bf611764c8ba7868f3ed40d6b2c?tpId=46&tqId=29041&tPage=1&rp=1&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking一、题目描述给定一个字符串s和一组单词dict...原创 2019-09-16 19:24:23 · 483 阅读 · 0 评论 -
数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。class Solution {public: bool duplicate(int numbers[],...原创 2019-01-08 21:37:21 · 191 阅读 · 0 评论 -
斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39class Solution {public: int Fibonacci(int n) { int result[2] = {0, 1}; if (n < 2) return resul...原创 2019-01-08 21:56:36 · 172 阅读 · 0 评论 -
二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution {public: bool Find(int target, vector<vector<int> > array) { ...原创 2019-01-09 17:30:59 · 153 阅读 · 0 评论 -
从尾到头打印链表
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。class Solution {public: vector<int> printListFromTailToHead(ListNode* head) { vector <int> result; if (NULL == head) ...原创 2019-01-08 21:43:49 · 157 阅读 · 0 评论 -
二叉树的下一个结点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。首先给出一棵简单的二叉树如下所示(1)如果这个结点有右子树,例如 2,那么它的下一个结点就是它右子树的最左结点 5(2)如果这个结点没有右子树且为父结点的左结点,例如 7,那么它的下一个结点就是它父结点 ;如果这个结点没有右子树且为父结点...原创 2019-01-27 18:55:32 · 162 阅读 · 0 评论 -
C++实现:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
代码:class Solution {public: class Sum { public: Sum() { s_count++; s_sum += s_count; } static int GetSum() { ...原创 2018-11-28 10:45:07 · 833 阅读 · 0 评论 -
交换两个变量的方法
在编程中,经常会遇到两个变量的值互换,很多朋友喜欢创建一个临时变量tmp,用于存放a的值,然后把b的值赋值给a,再把tmp的值赋值给b,于是就完成了两个变量的值交换功能。#include <stdio.h>int main(){ int a = 10; int b = 20; int tmp; tmp = a; a = b; b = tmp; ...原创 2018-03-19 16:18:57 · 370 阅读 · 1 评论 -
合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ...原创 2019-01-09 12:34:24 · 392 阅读 · 0 评论 -
替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str,int length) { if (str == NULL && length &l...原创 2019-01-09 16:01:55 · 163 阅读 · 0 评论 -
反转链表
题目描述输入一个链表,反转链表后,输出新链表的表头。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pH...原创 2019-01-10 16:57:17 · 159 阅读 · 0 评论 -
删除链表中重复的节点
题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/*struct ListNode { int val; struct ListNode *next; ListNode(int x) ...原创 2019-01-15 17:49:15 · 178 阅读 · 0 评论 -
杨辉三角中第 n 行第 m 个数字
一、原理杨辉三角,是二项式系数在三角形中的一种几何排列,每个数等于它上方两数之和,杨辉三角中第 n 行第 m 个数为,通过二项式定理,我们可以知道在二项式中,,所以当,我们便可以利用来计算杨辉三角中的数字对于一些比较小的数字,可以定义 long long 类型来解决,但是对于一些较大的数字会产生溢出,对于这样的问题,可以定义一个数组来解决。另外,杨辉三角中每一个数都为正数,可...原创 2019-03-21 18:13:35 · 12593 阅读 · 1 评论 -
链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* p...原创 2019-01-10 16:30:08 · 202 阅读 · 0 评论 -
用户态和内核态
1. 用户态和内核态的概念区别究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:1)例子void testfork(){ if(0 == fork()) { printf(“create new process...转载 2019-07-05 08:43:39 · 113 阅读 · 0 评论 -
最大公因数进阶
辗转相除法和相减法:https://blog.csdn.net/xinwenhuayu/article/details/80367966当我们求两个数的最大公约数,可以用辗转相除法和相减法来求,但是辗转相除法的取模运算的代价很大,而相减法遇到类似(100000,1)这样的数则很尴尬,从分析公约数的特点入手,对于 gcd(a,b)当 a = k * a1,b = k * b1时,gcd(...原创 2019-08-02 10:27:28 · 176 阅读 · 0 评论 -
N 皇后问题
一、题目描述根据n皇后问题,现在返回n皇后不同的解决方案的数量而不是具体的放置布局。题目链接:https://www.lintcode.com/problem/n-queens-ii/description二、样例例1:输入: n=1输出: 1解释:1:1例2:输入: n=4输出: 2解释:1:0 0 1 01 0 0 00 0 0 10 1...原创 2019-09-14 14:44:49 · 109 阅读 · 0 评论 -
打印100~200 之间的素数
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。#include <stdio.h>#include <math.h>int main(){ int n, k, i, m; m = 0; for (n = 101; n <= 200; n++) { k = sqrt(1.0*n); ...原创 2018-05-14 19:57:47 · 247 阅读 · 1 评论 -
在屏幕上打印杨辉三角
程序代码:#include <stdio.h>#define N 10int main(){ int i; int j; int a[N][N]; for (i = 0; i < N; i++) { a[i][0] = 1; a[i][i] = 1; } for (i = 2; i < N; i++) { for (j = 1; ...原创 2018-08-22 18:34:35 · 377 阅读 · 0 评论 -
编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。
程序代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <windows.h>int main(){ int ch, i = 0; ch = getchar(); if (ch == '}') printf("花括号不成对"); while (ch != EOF) {...原创 2018-07-28 14:15:39 · 310 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
程序代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <windows.h>int main(){ int a = 0; int Sn = 0; scanf("%d", &a); Sn = 5 * a + a * 4 * 10 + a * 3 * 100 + a * ...原创 2018-07-28 14:07:22 · 426 阅读 · 0 评论 -
求出0~999之间的所有“水仙花数”并输出。“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。
程序代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <windows.h>int main(){ int i = 0; int j = 0; int k = 0; for (i = 0; i <= 9; i++) for (j = 0; j <= 9; j++...原创 2018-07-28 14:01:34 · 1268 阅读 · 0 评论 -
输出菱形
在屏幕上输出以下图案: * *** ***** ******* ********* *********** ************* *********** ********* ...原创 2018-07-28 13:56:00 · 602 阅读 · 0 评论 -
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。
程序代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <windows.h>void print(int n){ int x = 0; for (x = 1; x <= n; x++) { int y = 0; for (y = 1; y <= x; y++...原创 2018-08-09 09:06:09 · 886 阅读 · 0 评论 -
编写程序数一下 1到 100 的所有整数中出现多少次数字9
代码:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <windows.h>#define n 9#define m 100int main(){ int i = 0, count = 0; for (i = 0; i <= m; i++) { if (i / 10 =...原创 2018-07-15 13:14:30 · 246 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值。
代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <windows.h>#include <math.h>int main(){ double i = 0; double sum = 0; printf("计算1/1-1/2+1/3-1/4+1/5-…+1/99-1/1...原创 2018-07-15 13:01:08 · 277 阅读 · 0 评论 -
将数组A中的内容和数组B中的内容进行交换(数组一样大)
代码:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <windows.h>#define m 5void Print(const int a[m]){ int i = 0; for (i = 0; i<m; i++) { printf("%d ", a[i]); ...原创 2018-07-15 12:40:24 · 278 阅读 · 0 评论 -
求10 个整数中最大值
分析:首先,初始化一个数组a [i] ,从键盘中输入数据;然后,定义变量i和max,将a [i] 赋值给max,如果a[i] > max 那就将a[i]赋值给max;直到循环结束,max的值就是数组元素里的最大值。 代码:#include <stdio.h>int main(){ int a[10]; int i, max; printf("...原创 2018-05-16 19:51:47 · 427 阅读 · 0 评论 -
写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <windows.h>int binary_search(int arr[], int key, int sz){ int left = 0; int right = sz - 1; while (left <= righ...原创 2018-08-02 16:59:28 · 285 阅读 · 0 评论 -
编写代码模拟三次密码输入的场景
代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>int main(){ char password[10] = { 0 }; char arr[] = ...原创 2018-08-03 07:49:23 · 275 阅读 · 0 评论 -
无题
题目:5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。程序代码:#include<stdio.h>int main(){ int k = 0; for (k ...原创 2018-08-22 18:18:50 · 180 阅读 · 0 评论 -
AthleteRankings
题目:5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。程序代码:#include<stdio.h>int main(){ int A, B, C, D, E;...原创 2018-08-16 19:29:55 · 186 阅读 · 0 评论 -
编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
程序代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <windows.h>int main(){ int m = 0; int n = 0; int i = 0; int count = 0; printf("请输入两个整数:"); scanf("%d %d", &am...原创 2018-08-08 17:55:02 · 291 阅读 · 0 评论 -
输出一个整数的每一位
程序代码:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include <windows.h>void print(int n){ if (n < 10) { printf("%d ", n); } if (n > 9) { print(n / 10); print...原创 2018-08-08 17:28:49 · 439 阅读 · 0 评论 -
获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列。
程序代码:#include <windows.h>int print_num(unsigned value){ int count = 0; int a[32] = { 0 }; int i = 0; while (value) { a[i++] = value % 2; value /= 2; count++; } printf("奇数序列:\...原创 2018-08-08 17:21:12 · 219 阅读 · 0 评论