![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题
文章平均质量分 63
poison_biti
这个作者很懒,什么都没留下…
展开
-
如何动态开辟二维数组
(1)new的方式int main(){ int n = 0; cin>>n; //(1)动态开辟二维数组 int** arr = new int*[n]; for (int i = 0;i < n;i++) { arr[i] = new int[n]; memset(arr[i], 0, sizeof(int)*n);//new出来的空间一定要记得初始化 } s原创 2017-06-22 18:14:47 · 1122 阅读 · 0 评论 -
腾讯2016研发工程师编程题——微信红包
“test.cpp”class Gift {public: int getValue(vector gifts, int n) { // write code here if(gifts.size() == 0 || gifts.size() != n) return 0; //先给红包数组排序原创 2016-11-02 19:06:43 · 1198 阅读 · 1 评论 -
腾讯2016研发工程师编程题——生成格雷码
“test.cpp”class GrayCode {public: vector getGray(int n) { // write code here vector gray; if(n == 1){ gray.push_back("0"); gray.push_bac原创 2016-10-31 22:42:07 · 514 阅读 · 0 评论 -
蓝桥——你的密码安全吗?
“test.cpp”#includeusing namespace std;#include void test(){ string str; cin>>str; int arr[6] = {0}; for(int i = 0;i < 6;i++) { int j = i; int sum = 0; while(j < str.length()) {原创 2016-11-12 11:13:59 · 437 阅读 · 0 评论 -
程序员面试金典——密码验证合格程序
“test.cpp”#includeusing namespace std;#includeint main(){ string str; while(cin>>str){ int count[4] = {0}; if(str.size() <= 8) goto NG; for(size_t i = 0;i < str.size(原创 2016-10-30 23:00:02 · 449 阅读 · 0 评论 -
华为机试——魔术索引
"test.cpp"没想到,既然暴力法会通过所有的测试用例原创 2016-10-30 21:50:05 · 518 阅读 · 0 评论 -
面试题——大数据处理解题思路
(1)给一个超过100G大小的log file,log中存着IP地址,设计算法找到出现次数最多的IP地址?解题思路:IP地址是一个32位的字符串,100G在内存中肯定放不下,所以我们必须通过不同的手段去解决。我们可以将100G的文件切分成1000个小文件,对每个文件编号,每个文件的大小是512M,这样内存是很容易读取的。我们将IP地址通过字符串哈希函数处理成对应的整树,将整数模上文件个原创 2016-11-10 22:24:18 · 706 阅读 · 0 评论 -
今日头条——回文编码
"test.cpp" #includeusing namespace std;#includestring Reversal(string str,int p,int l){ int left = p; int right = p + l -1; while(left < right) { swap(str[left],str[right]);原创 2016-10-28 14:54:47 · 746 阅读 · 0 评论 -
华为机试——字符串最后一个字符的长度
"test.cpp"#includeusing namespace std;#includevoid test(){ string str; getline(cin,str); if(str.length() >= 5000 || str.length() == 0) { return; } string::iterator it = st原创 2016-10-28 13:55:21 · 461 阅读 · 0 评论 -
网易秋招编程题——优雅的点
“test.cpp”#includeusing namespace std;#includevoid test(){ int num = 0; int count = 0; cin>>num; for(int i = 0;i < sqrt(num);i++) { double j = sqrt(num - i*i); if(int(j) == j)原创 2016-10-17 23:19:52 · 735 阅读 · 0 评论 -
楚楚街——解密
“test.cpp”#include using namespace std;#include#include #includevoid DFS(const string& str,int len,vector& v,vector& arr){ if (len == str.size()) { for (int i = 0;i < len;i++) { cout原创 2016-11-17 22:51:16 · 672 阅读 · 0 评论 -
京东——上台阶
上台阶热度指数:2961时间限制:3秒空间限制:32768K本题知识点: 递归 动态规划 算法知识视频讲解题目描述有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod原创 2016-11-18 13:54:32 · 449 阅读 · 0 评论 -
一次完整http请求的7个过程
http请求一共有7个步骤1、建立tcp数据连接 在HTTP工作开始前,web浏览器向服务器发起连接请求,并建立建立。http协议是比tcp协议更高层次的应用层协议,根据规则,只有低层的协议建立连接才能进行数据通信。因此首先需要建立tcp连接,tcp连接的端口号一般是80.2、web浏览器向web服务器发起请求 【请求行: 请求方法 、 url 、 协议版本原创 2017-06-22 10:25:13 · 1718 阅读 · 0 评论 -
面试热题——任意进制(32进制及以下)之间的转换
#define _CRT_SECURE_NO_WARNINGS 1#include using namespace std;#include#include #include//将n进制转换为2进制void nTotwo(vector& v){ //输入的数值是n进制的 int n = 0; cin>>n; //输入的数值是多少 string num; cin>原创 2017-05-25 23:28:52 · 418 阅读 · 0 评论 -
八进制
#includeusing namespace std;#include#includevoid test(){ int num = 0; vector arr; int key = 0; while(cin>>num){ vector arr; while(num > 0){ key = num % 8; arr.push_back(key); nu原创 2017-04-22 23:32:30 · 329 阅读 · 0 评论 -
大整数排序
时间限制:1秒 空间限制:32768K 热度指数:463 算法知识视频讲解题目描述对N个长度最长可达到1000的数进行排序。 输入描述:输入第一行为一个整数N,(1<=N<=100)。接下来的N行每行有一个数,数的长度范围为1<=len<=1000。每个数都是一个正数,并且保证不包含前缀零。输出描述:可能有多组测试数据,对于每组数据,将给出的N个数从原创 2017-04-16 17:53:19 · 1062 阅读 · 0 评论 -
剑指offer——复杂链表的拷贝
/*struct RandomListNode { int label; struct RandomListNode *next, *random; RandomListNode(int x) : label(x), next(NULL), random(NULL) { }};*/class Solution {public:原创 2017-03-23 20:48:14 · 302 阅读 · 0 评论 -
排序——快速排序挖坑法的变形
题目要求代码实现#includeusing namespace std;#includeint Find(vector flag){ for (size_t i = 0;i < flag.size();++i) { if (flag[i] == false) { return i; } } return -1;}vector Swap原创 2016-12-20 23:00:41 · 841 阅读 · 0 评论 -
程序员面试金典——输出单层节点
“test.cpp”/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*//*struct ListNode原创 2017-01-02 12:38:38 · 600 阅读 · 0 评论 -
动态规划——最长升序子序列
问题描述一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4,原创 2016-11-19 09:58:04 · 3361 阅读 · 0 评论 -
程序员面试金典——最大连续数列和
class MaxSum {public: int getMaxSum(vector A, int n) { // write code here vector maxnum(n); //子问题最优解的数组 maxnum[0] = A[0]; for(int i = 1;i < n;++i){原创 2016-12-10 21:21:14 · 450 阅读 · 0 评论 -
网易秋招编程题——回文序列
“test.cpp”#includeusing namespace std;int comb(int* nums,int start,int end){ int count = 0; int left = nums[start]; int right = nums[end]; while(start < end && left != right) { if(left <原创 2016-10-17 23:17:21 · 1043 阅读 · 0 评论 -
腾讯面试题——位图的应用
题目:给40亿个不重复的无符号整型,没排过序。给一个无符号整数,如何快速判断这个数是否存在在这40亿个数中set()函数图解reset()函数图解“BitMap.h”#pragma once#includeclass BitMap{public: //range 范围 BitMap(size_t range) { //size_t有四个字原创 2016-11-07 15:17:14 · 690 阅读 · 0 评论 -
线索化二叉树
“test.cpp”#includeusing namespace std;#includeenum Tag{ THREAD, LINK,};templatestruct BinaryTreeThdNode{ T _data; BinaryTreeThdNode* _left; BinaryTreeThdNode* _right; Tag _lefttag;原创 2016-10-01 14:22:46 · 494 阅读 · 0 评论 -
单链表的简单面试题
#define _CRT_SECURE_NO_WARNINGS 1#include "SListNode.h"void Test1()//PushBack PopBack{ PSListNode pHead = NULL; InitList(&pHead); PushBack(&pHead,0); PushBack(&pHead,1); PushBack(&原创 2016-06-12 22:46:56 · 658 阅读 · 0 评论 -
栈和队列相关面试题(1)
1、实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)2、使用两个栈实现一个队列3、使用两个队列实现一个栈原创 2016-06-14 13:35:17 · 626 阅读 · 0 评论 -
栈和队列相关面试题(2)
4、元素入栈、出栈顺序的合法性,如入栈的序列为(1,2,3,4,5),出栈序列为(4,5,3,2,1)原创 2016-06-14 14:57:40 · 610 阅读 · 0 评论 -
栈和队列相关面试题(3)
5、一个数组实现两个栈思路:双向增长法 两个栈的栈底分别指向数组的两端,栈顶不断向另一个栈的栈底靠近。过程: 1、假设以数组首端为栈底的栈叫Stack1,以数组尾端为栈底的栈Stack2,那么当Stack1的栈顶指针大于Stack2的栈顶指针时,需扩容 2、在实现Push与Pop操作是需要多传一个参数flag以确定是对哪一个栈进行操作思路2原创 2016-06-14 19:42:13 · 546 阅读 · 0 评论 -
剑指offer——旋转数组的最小值
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。原创 2016-06-14 21:27:41 · 334 阅读 · 0 评论 -
剑指offer——二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。#define _CRT_SECURE_NO_WARNINGS 1#include using namespace std;int OneCount(unsigned int num){ size_t count = 0; int ret = 0; for (int i = 0;i < 32;i原创 2016-06-15 16:06:43 · 331 阅读 · 0 评论 -
剑指offer——整数中1出现的次数
整数中1出现的次数(从1到n整数中1出现的次数)求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。#define _CRT_SECURE_NO_WARNIN原创 2016-06-15 17:14:13 · 344 阅读 · 0 评论 -
剑指offer——二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。原创 2016-06-20 19:18:26 · 366 阅读 · 0 评论 -
(单)链表的基本操作及常见面试题
"SListNode.h"#ifndef __SListNode_H__#define __SListNode_H__#pragma once //能够保证头文件只被编译一次#include #include #include typedef int DataType;typedef struct SListNode { DataType data;原创 2016-06-20 21:13:44 · 474 阅读 · 0 评论 -
剑指offer——空格替换问题和相关问题
void Test1(){ //请实现一个函数,把字符串中的每个空格替换成%20 //例如输入“we are happy”,输出“we%20are%20happy” char arr[20] ="we are happy"; int size = sizeof(arr)/sizeof(arr[0]); Replace(arr,strlen(arr),size); pri原创 2016-06-12 11:08:26 · 613 阅读 · 0 评论 -
遍历二叉树——递归实现
二叉树是面试官经常考的面试题,只要熟悉了二叉树的结构,就能很轻松的对付各种问题原创 2016-07-03 14:06:17 · 400 阅读 · 0 评论 -
网易秋招编程题——计算糖果
“test.cpp”#includeusing namespace std;void test(){ int x,y,j,k; cin>>x; cin>>y; cin>>j; cin>>k; int a = 0; if((x + j) % 2 == 0) { a = (x + j) / 2;原创 2016-10-16 11:36:13 · 902 阅读 · 0 评论 -
面试题——判断一棵树是否是平衡二叉树
bool IsBlance() { return _IsBlance(_root); }protected: bool _IsBlance(Node* root) { if (root == NULL) return true; int leftHeight = _Height(root->_left); int rightHeight = _Height(r原创 2016-10-25 16:26:04 · 1790 阅读 · 0 评论 -
面试题——不用循环计算1+2+...+100之和
前几天看到校招的面试题,要求不要用循环计算出1+2+3...+100之和。当我看到这道题的时候第一反应就是用递归写,能用循环的程序不一定能用递归去写,但是能用递归的程序一定可以用循环写出。所以递归和循环是相铺相成的。 这里我也不知道递归是不是面试考官想要的最优写法,但是这题至少没用循环。这里我写完后修改了下代码,不仅仅是只计算1+2+3...+100的程序,输入一个最小的数字(如5原创 2016-09-28 14:51:35 · 2086 阅读 · 0 评论 -
去哪儿2015研发工程师——首个重复字符
“test.cpp”class FirstRepeat {public: char findFirstRepeat(string A, int n) { // write code here if(n > 500) return 0; int ch[256] = {0}; for原创 2016-11-03 22:13:38 · 429 阅读 · 0 评论 -
360面试题——搜索二叉树转换成有序的双向链表
360面试题——(不允许创建新的节点)搜索二叉树转换成有序的双向链表这道题有两种思路,一种是创建节点,中序遍历搜索二叉树,然后链表尾插。第二种是线索化二叉树的思想(思路二才是符合题目要求的)核心代码 Node* TreeToList() { if(_root == NULL) { return NULL; } Node* prev = NULL;原创 2016-10-09 16:46:02 · 624 阅读 · 0 评论