面试题
文章平均质量分 62
ranjiewen
坚持阅读,坚持练习,日积月累! 金风玉露一相逢,便胜却人间无数!
展开
-
单链表的实现
学习编程也有一段时间了,但是总是感觉,自己缺少一些什么东西。编程一味的学习照着别人写的习惯,没有自己的思想,是不能有质的提升的。总是感觉自己不能做什么,对待代码还是缺少基本的实现的能力,更不用说什么技巧算法了。还需要的大量的联系。 我打算好好把数据结构的算法,实现以下,总是感觉自己,看起来会了,但是实际动手机就写不出来了。 自己只有不断的总结,把该记住的东西理解了,才能得心应手原创 2016-09-20 14:16:33 · 454 阅读 · 0 评论 -
offer--链表反转和从尾到头打印链表
这个是高频的面试题,今天总结了一些。反转链表用三个指针实现,返回新链表的头节点;而从尾到头打印,应用栈实现,返回vector整个链表。//题目描述////输入一个链表,反转链表后,输出链表的所有元素。struct ListNode{ int val; struct ListNode *next; ListNode(int x) :val(x原创 2016-09-20 14:07:29 · 340 阅读 · 0 评论 -
猫狗收养所
两种方法实现,用两个vector实现,一个为领养的动物(输出),一个为收养的动物(输入);用两个queue实现(都为输入),一个为收养的猫,一个收养的狗,vetor(输出)。/****************************************************** \file CatDogAsylum.cpp* \date 2016/05/09 15:19原创 2016-09-20 14:07:05 · 443 阅读 · 0 评论 -
链表回文串判断&&链式A+B
有段时间没有练习了,链表回文串判断用到了栈。链式A+B将没有的项用0补充。链表有没有头节点,及结点和链表的区别,即pNode和pHead。//#include//using namespace std;////class Base {//public:// Base(int j) : i(j) {}// virtual~Base() {}// void fun原创 2016-09-20 14:06:45 · 287 阅读 · 0 评论 -
华为上机测试题
练习了一些华为上机测试的题目,打算后面多学习算法的部分,以后再更新了。这里奉献3题,还有部分在github上,分类和博客差不多,欢迎star和fork,大家共同学习!//题目描述////密码要求 :////1.长度超过8位////2.包括大小写字母.数字.其它符号, 以上四种至少三种////3.不能有相同长度超2的子串重复////说明:长度超过2原创 2016-09-20 14:05:29 · 798 阅读 · 0 评论 -
2016网易研发题目
前段时间做的,现在整理一下,方便以后复习!//小易经常沉迷于网络游戏.有一次, 他在玩一个打怪升级的游戏, 他的角色的初始能力值为 a.//在接下来的一段时间内, 他将会依次遇见n个怪物, 每个怪物的防御力为b1, b2, b3...bn.//如果遇到的怪物防御力bi小于等于小易的当前能力值c, 那么他就能轻松打败怪物, 并 且使得自己的能力值增加bi; //如果bi大于c,原创 2016-09-20 14:05:26 · 205 阅读 · 0 评论 -
2016蘑菇街编程题5题
花了差不多一天的时间的搞定了这几道题,可能能搞定3道左右,期间也遇到了很多编程细节的问题,还借鉴了别人的思路,坚持练习!//现在有一张半径为r的圆桌,其中心位于(x, y),现在他想把圆桌的中心移到(x1, y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。////输入描述 ://一行五个整数r, x, y, x1, y1(1≤r≤10原创 2016-09-20 14:05:21 · 298 阅读 · 0 评论 -
网易实习生真题(二叉树)
2016.3月的网易实习生机试题,考察了的对二叉树的灵活应用,理解中序遍历的用处!可能还有优化的解,大家自由发挥!//有一棵二叉树,树上每个点标有权值,权值各不相同,请设计一个算法算出权值最大的叶节点到权值最小的叶节点的距离。//二叉树每条边的距离为1,一个节点经过多少条边到达另一个节点为这两个节点之间的距离。//给定二叉树的根节点root,请返回所求距离。#inclu原创 2016-09-20 14:05:04 · 226 阅读 · 0 评论 -
strcpy基本用法
C语言标准库函数strcpy,把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间。C语言函数原型声明:extern char *strcpy(char* dest, const char *src);头文件:#include string.h> 和 #include 功能:把从src地址开始且含有\0结束符的字符串复制到以dest开始的地址空间原创 2016-09-20 14:04:55 · 3234 阅读 · 0 评论 -
atoi()函数的实现
atoi()函数的功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。 atoi()函数实现的代码: [cpp] view plain copy print?/* * name:xif * c原创 2016-09-20 14:04:50 · 179 阅读 · 0 评论 -
C++标准转换运算符 --四种
具体归纳如下:reinterpret_cast函数将一个类型的指针转换为另一个类型的指针.这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到.reinterpret_cast 可以将指针值转换为一个整型数,但不能用于非指针类型的转换.例://基本类型指针的类型转换 double d=9.2; double* pd原创 2016-09-20 14:04:45 · 527 阅读 · 0 评论 -
网易实习笔试真题C/C++
刚做的时候根本就没有想到解题思路,刚好看到了别人的思路,自己写了一下。里面对unordered_map及vector二维数组的建立很灵活,另外区别了一下map,unordered_map,hash_map;但是没有弄清楚unordered_map,hash_map的区别。以后遇到了在细细研究。另一个关于二叉树的笔试真题:http://www.cnblogs.com/ranjiewen/p/53原创 2016-09-20 14:04:38 · 599 阅读 · 0 评论 -
翻转字符串和比较两个字符串是否相同
奉献两个小题,练习继续://题目描述////请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。//给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。//测试样例://"This is nowcoder"//返回:"redocwon si sihT"原创 2016-09-20 14:04:05 · 406 阅读 · 0 评论 -
各种排序和查找复杂度
排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定选择排序 O(n^2) O(n^2)原创 2016-09-20 14:03:21 · 469 阅读 · 0 评论 -
strcpy函数的实现
strcpy函数的实现 已知strcpy函数的原型是:char *strcpy(char *dst, const char *src);实现strcpy函数解释为什么要返回char *假如考虑dst和src内存重叠的情况,strcpy该怎么实现 1.strcpy的实现代码(360百科:http://baike.so.com/doc/5401748-5原创 2016-09-20 14:03:07 · 178 阅读 · 0 评论 -
链表求差
链表指针参数和逻辑的分析。//已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。//例如,若集合A = { 5, 10, 20, 15, 25, 30 },集合B = { 5, 15, 35, 25 },完成计算后A = { 10, 20, 30 }。#include#includes原创 2016-09-20 14:07:34 · 346 阅读 · 0 评论 -
输出树的单层节点
理解题意,注意链表创建和树的层次遍历。/****************************************************** \file TreeLevel.cpp* \date 2016/05/31 17:05* \问题描述:对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。给定二叉树的根结点指针TreeNode* root原创 2016-09-20 14:07:55 · 574 阅读 · 0 评论 -
两个字符串的最长连续公共子串
LCS(Longest Common Subsequence) 就是求两个字符串最长公共子串的问题。引入:LCS(Longest Common Subsequence) 就是求两个字符串最长公共子串的问题。比如: String str1 = new String("adbccadebbca"); String str2 = new String("edabccadece");str原创 2016-09-20 14:16:18 · 1961 阅读 · 0 评论 -
大小最接近的那两个数(位操作)
主要是熟悉位操作,寻找一个数二进制1位相同,且大小最相近的数。//题目描述////有一个正整数,请找出其二进制表示中1的个数相同、且大小最接近的那两个数。(一个略大,一个略小)//给定正整数int x,请返回一个vector,代表所求的两个数(小的在前)。保证答案存在。//测试样例://2//返回:[1, 4]////思路://取得略大的数://原创 2016-09-20 14:15:04 · 905 阅读 · 0 评论 -
八大排序算法
概述 参考:http://blog.csdn.net/hguisu/article/details/7776068 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速原创 2016-09-20 14:13:14 · 699 阅读 · 0 评论 -
创建二叉树求叶子节点个数
求二叉树叶子结点的个数,注意创建方法!//求二叉树中叶子结点的个数#include#define N 63using namespace std;char str[] = "ab#d##c#e##"; //先建立根节点,然后再左右结点建立int i = -1;typedef struct node{ struct node *left原创 2016-09-20 14:12:40 · 1048 阅读 · 0 评论 -
乐视2016暑期实习编程题
今天20170721做过这几道题很久了,上次做的一塌糊涂,先是理解题意,搞了一半天,第一道题不知道方向,后面才是转化为树的问题,递归求解;后面两道就是看起来很简单,就是复杂度达不到,还是多积累!/*! * \file 乐视暑期实习.cpp * \date 2016/07/20 17:33 * * \author ranjiewen * \contact: ranjiew原创 2016-09-20 14:12:38 · 527 阅读 · 0 评论 -
京东算法笔试
算这两道题以前都做过吧,第一题斐波拉契的非递归实现,第二题总结递推公式。慢慢积累!/****************************************************** \file SingletonPatternDemo.cpp* \date 2016/07/13 18:20* \author ranjiewen* \conta原创 2016-09-20 14:11:53 · 466 阅读 · 0 评论 -
满二叉树的最近公共祖先
满二叉树节点父子之间的关系。//题目描述////有一棵无穷大的满二叉树,其结点按根结点一层一层地从左往右依次编号,根结点编号为1。现在有两个结点a,b。//请设计一个算法,求出a和b点的最近公共祖先的编号。//给定两个int a, b。为给定结点的编号。请返回a和b的最近公共祖先的编号。注意这里结点本身也可认为是其祖先。//测试样例://2,3//返回:1原创 2016-09-20 14:10:04 · 832 阅读 · 0 评论 -
乐视模拟编程题
这几道题都是以前遇到过的,看似比较简单,但也有一些细节AC不过! 注意1.cin.ignore()的用法。2.最后空格的处理。3,4.质因数的循环求解,质数的判断。1.//输入字符串,统计某一字符出现的次数#includeusing namespace std;#includestring>int main(){ string str; w原创 2016-09-20 14:08:48 · 348 阅读 · 0 评论 -
判断是否为BST
递归的方法,用返回false的方法。中序遍历的想法很好,空间浪费。遍历的过程记录上一次的值进行比较。//题目描述////请实现一个函数,检查一棵二叉树是否为二叉查找树。//给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树。#includeusing namespace std;struct TreeNode {原创 2016-09-20 14:08:33 · 580 阅读 · 0 评论 -
百度2017暑期实习生编程题
三道题,算完了一道半,第二题,找bug很久,第三题难,参考了一下别人的。对操作系统的页面置换算法FIFO和进程的调度SJF算法了解了一下。//拉姆刚开始学习英文单词,对单词排序很感兴趣。//如果给拉姆一组单词,他能够迅速确定是否可以将这些单词排列在一个列表中,使得该列表中任何单词的首字母与前一单词的为字母相同。//你能编写一个程序来帮助拉姆进行判断吗?////输入描述 :原创 2016-09-20 14:08:29 · 255 阅读 · 0 评论 -
memset()实现及细节
memset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。 头文件:或void *memset(void *s, int ch, size_t n);函数解释:将s中前n个字节替换为ch并返回s;memset:作用是在原创 2016-09-20 14:08:24 · 2490 阅读 · 0 评论 -
腾讯2017暑期实习生编程题
1.给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。输入描述 :输入数据有多组,每组包含一个字符串s,且保证 : 1 输出描述 :对于每组数据,输出一个整数,代表最少需要删除的字符个数。 输入例子 : abcda google 输出例子 : 2原创 2016-09-20 14:08:21 · 225 阅读 · 0 评论 -
最长公共子序列(LCS)
最长公共子序列,英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。而最长公共子串(要求连续)和最长公共子序列是不同的. 最长公共子序列是一个十分实用的问题,它可以描述两段文字之间的"相似度",即它们的雷同程度,从而能够用来辨别抄原创 2016-09-20 14:08:16 · 517 阅读 · 0 评论 -
memcpy和memmove
变态的命名 我们在写程序时,一般讲究见到变量的命名,就能让别人基本知道该变量的含义。memcpy内存拷贝,没有问题;memmove,内存移动?错,如果这样理解的话,那么这篇文章你就必须要好好看看了,memmove还是内存拷贝。那么既然memcpy和memmove二者都是内存拷贝,那二者究竟有什么区别呢?先说memcpy 你有没有好好的参加过一场C++笔试。让你写出m原创 2016-09-20 14:08:02 · 329 阅读 · 0 评论 -
剑指offer
今天完成了剑指offer上的66道编程题,感觉自己还是很多代码实现能力和算法积累都还不够!还需要继续联系,坚持自己独立写代码实现。最后将今天的两道题目奉上,都有异曲同工之妙:矩阵中的路径:#include//题目描述////请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。//路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,原创 2016-09-20 14:02:44 · 214 阅读 · 0 评论