程序员面试金典题目笔记
Allenlzcoder
拒绝拖延症!!!
展开
-
程序员面试金典——3.4汉诺塔
Solution1:典型的递归题。参考的清华大学郑莉老师的C++讲义中的答案。#include<iostream>using namespace std;//将src针最上面一个盘子移动到dest针上void move(char src, char dest) { cout << src << " --> " << dest ...转载 2018-10-10 01:24:51 · 411 阅读 · 0 评论 -
程序员面试金典——7.5平分的直线
程序员面试金典——7.5平分的直线Solution1:我的答案/*struct Point { int x; int y; Point() : x(0), y(0) { } Point(int xx, int yy) { x = xx; y = yy; }};*/class Bip...原创 2018-04-21 10:35:05 · 222 阅读 · 0 评论 -
程序员面试金典——18.7最长合成字符串
程序员面试金典——18.7最长合成字符串参考网址:https://www.nowcoder.com/profile/2896594/codeBookDetail?submissionId=13543240 Solution1:一开始看这道题真是木有一点思路,别人家的思维真是妙妙妙啊~~~class LongestString {public: int getLongest(ve...转载 2018-05-03 09:26:13 · 287 阅读 · 0 评论 -
程序员面试金典——18.9实时中位数
程序员面试金典——18.9实时中位数Solution1:我的答案。利用排序,比较弱智。。class Middle {public: vector<int> getMiddle(vector<int> A, int n) { // write code here vector<int> res; ...原创 2018-05-03 10:59:38 · 410 阅读 · 0 评论 -
程序员面试金典——7.6穿点最多的直线
程序员面试金典——7.6穿点最多的直线Solution1: 参考网址:https://www.nowcoder.com/profile/250145/codeBookDetail?submissionId=12700731 思路:这个思路的代码比较简洁。思想是穷举完每两个点,同时算出一组斜率和截距,最后统计所有的&amp;amp;lt;斜率,截距&amp;amp;gt;对,找出数目最多的即可。复杂度为O(n2)O(n2)...转载 2018-04-21 17:08:14 · 252 阅读 · 0 评论 -
程序员面试金典——7.7第k个数(丑数)
程序员面试金典——7.7第k个数(丑数)Solution1:题意模模糊糊,实际上就是求第k个丑数,在《剑指offer》上有类似的题目~ 别人的代码真是简洁,学习之~~~class KthNumber {public: int findKth(int k) {//返回因子中只有3,5,7的第k个数 // write code here vector...原创 2018-04-21 18:13:22 · 279 阅读 · 0 评论 -
程序员面试金典——9.1上楼梯
程序员面试金典——9.1上楼梯Solution1:我的破答案,复杂度太高未能AC 递归的毛病就是复杂度太高!!!class GoUpstairs {public: int countWays(int n) { //hin典型的递归啊~ // write code here return my_count(n); } int ...原创 2018-04-21 18:37:40 · 298 阅读 · 0 评论 -
程序员面试金典——9.2机器人走方格
程序员面试金典——9.2机器人走方格问题I: Solution1:我的答案 普通的从左上角走到右下角的题目 动态规划,哈哈啊哈哈哈class Robot {public: int countWays(int x, int y) { //很典型的动态规划题 // write code here int temp[x][y]; f...原创 2018-04-21 19:28:47 · 281 阅读 · 0 评论 -
程序员面试金典——9.3魔术索引
程序员面试金典——9.3魔术索引问题I Solution1:我的答案,二分查找 A是升序的vector&lt;int&gt;vector&lt;int&gt;vector 注意不要烦傻逼错误!!!class MagicIndex {public: bool findMagicIndex(vector&lt;int&gt; A, int n) {原创 2018-04-21 20:00:24 · 269 阅读 · 0 评论 -
程序员面试金典——11.3元素查找
程序员面试金典——11.3元素查找Solution1:我的答案 二分查找,貌似不咋好啊class Finder {public: int findElement(vector<int> A, int n, int x) { //二分法 // write code here、 if(n <= 0) re...原创 2018-04-25 10:51:12 · 205 阅读 · 0 评论 -
程序员面试金典——11.2变位词排序
程序员面试金典——11.2变位词排序Solution1: 参考网址:https://www.nowcoder.com/profile/845063/codeBookDetail?submissionId=12676002 知识点:利用set中count函数的功能,查找是否存在某个值class SortString {public: vector<string> s...原创 2018-04-25 10:41:08 · 210 阅读 · 0 评论 -
程序员面试金典——番外篇之约瑟夫问题1
程序员面试金典——番外篇之约瑟夫问题1Solution1:我的答案。脑子是个好东西,希望我总是带着他~ 该算法模拟了游戏过程,不算好。 要理清逻辑关系,因果关系,再下笔~class Joseph {public: int getResult(int n, int m) { // write code here if(n <= 0 || m...原创 2018-04-24 13:00:00 · 318 阅读 · 0 评论 -
程序员面试金典——5.7找出缺失的整数
程序员面试金典——5.7找出缺失的整数参考网址:https://www.nowcoder.com/profile/8185333/codeBookDetail?submissionId=12599768 Solution1:复杂度O(N)O(N)O(N) 题目: numbers是一个已经排好序的二维数组,存储的是0-n,但是缺少一个数,每一行存储的是每个数的 二进制,从二进制低位开始存...转载 2018-04-20 09:44:27 · 270 阅读 · 0 评论 -
程序员面试金典——5.8像素设定
程序员面试金典——5.8像素设定参考网址:https://www.nowcoder.com/questionTerminal/31ade926268441878d423029c54f5171链接:https://www.nowcoder.com/questionTerminal/31ade926268441878d423029c54f5171来源:牛客网/*基本上大意就是从第x ...转载 2018-04-20 10:08:14 · 237 阅读 · 0 评论 -
程序员面试金典——7.2碰撞的蚂蚁
程序员面试金典——7.2碰撞的蚂蚁Solution:按照书上的思路写的 每个蚂蚁有两种爬行选择,共有2n2n2^n种方案,只有当所有的蚂蚁同时顺时针爬行或逆时针爬行时,才不会相撞,所以不相撞的概率是P0=22n=12n−1P0=22n=12n−1P_0=\frac{2}{2^n}=\frac{1}{2^{n-1}},相撞的概率1−P01−P01-P_0。OKclass Ants {pu...原创 2018-04-20 10:29:54 · 232 阅读 · 0 评论 -
程序员面试金典——7.3判断直线相交
程序员面试金典——7.3判断直线相交Solution1:我的答案,虽然能AC,但不是很讲究,吸收教训class CrossLine {public: bool checkCrossLine(double s1, double s2, double y1, double y2) { // write code here if(s1 == s2 &am...原创 2018-04-20 10:36:54 · 173 阅读 · 0 评论 -
【To Do!】程序员面试金典——18.8子串判断
程序员面试金典——18.8子串判断Solution1:我的答案 利用了C++ STL中自带的find函数,有点投机取巧的意思,正统方法是用trie树(单词查找树)来做,那就麻烦了许多class Substr {public: vector<bool> chkSubStr(vector<string> p, int n, string s) { ...原创 2018-05-02 10:54:57 · 271 阅读 · 0 评论 -
程序员面试金典——7.4加法运算替代
程序员面试金典——7.4加法运算替代参考网址:https://www.nowcoder.com/profile/8858041/codeBookDetail?submissionId=15062497 一个知识点: 正整数按位取反等于其负数减一 负整数按位取反等于其正数减一class AddSubstitution {public: int calc(int a, int ...转载 2018-04-20 15:09:14 · 155 阅读 · 0 评论 -
程序员面试金典——番外篇之约瑟夫问题2
程序员面试金典——番外篇之约瑟夫问题2参考网址:https://www.nowcoder.com/profile/9270572/codeBookDetail?submissionId=15779150Solution1:解题思路:在c++中利用vector来做 1. 每一轮报数完毕之后,将vector尾部节点复制到首部同时删除尾部结点,开始新一轮的报数。 2. vector中...原创 2018-04-25 10:13:52 · 283 阅读 · 0 评论 -
程序员面试金典——11.5找出字符串
程序员面试金典——11.5找出字符串Solution1:我的答案。加强版的二分查找,嘿嘿嘿class Finder {public: int findString(vector<string> str, int n, string x) { // write code here if(n < 0) r...原创 2018-04-26 09:09:25 · 171 阅读 · 0 评论 -
程序员面试金典——11.6矩阵元素查找
程序员面试金典——11.6矩阵元素查找Solution1:我的答案。和剑指offer上的题目类似,复杂度是O(m+n)O(m+n)O(m+n)。class Finder {public: vector<int> findElement(vector<vector<int> > mat, int n, int m, int x) { ...原创 2018-04-26 09:21:05 · 177 阅读 · 0 评论 -
程序员面试金典——17.4无判断max
程序员面试金典——17.4无判断max参考网址: https://www.nowcoder.com/practice/b0a82250677a4fabb0bc41053fa05013?tpId=8&tqId=11056&tPage=4&rp=4&ru=%2Fta%2Fcracking-the-coding-interview&qru=%2Fta%2Fc...转载 2018-04-29 10:13:51 · 236 阅读 · 0 评论 -
程序员面试金典——17.5珠玑妙算
程序员面试金典——17.5珠玑妙算参考网址:https://www.nowcoder.com/profile/2708949/codeBookDetail?submissionId=13283364 Solution1:算法 从题目中可以获取隐含信息: “猜中” 属于 “伪猜中”,但是反过来不成立。 所有需要先统计猜中, 然后再统计伪猜中个数= 可能的伪猜中个数 - 猜中个数 因此...转载 2018-04-29 11:46:34 · 649 阅读 · 0 评论 -
程序员面试金典——17.3阶乘尾零
程序员面试金典——17.3阶乘尾零Solution1:我的答案。没有更笨的方法了。。。class Factor {public: int getFactorSuffixZero(int n) { // write code here int nums_2 = 0, nums_5 = 0; for(int i = 1; i <=...原创 2018-04-29 12:10:38 · 368 阅读 · 0 评论 -
程序员面试金典——17.6最小调整有序
程序员面试金典——17.6最小调整有序Solution1:我的答案。垃圾算法class Rearrange {public: vector<int> findSegment(vector<int> A, int n) { // write code here vector<int> temp = A, res(2...原创 2018-04-29 17:37:13 · 211 阅读 · 0 评论 -
程序员面试金典——17.7数字发音
程序员面试金典——17.7数字发音Solution1:我的答案。要AC这道题真不容易。。。细节注意太多class ToString {public: vector<string> Digit = {"", "One", "Two", "Three", "Four", "Five", "Six", "Seven&qu原创 2018-04-29 17:46:26 · 262 阅读 · 0 评论 -
程序员面试金典——17.8最大连续数列和
程序员面试金典——17.8最大连续数列和Solution1:典型的动态规划题啊. 一遍过,哈哈哈class MaxSum {public: int getMaxSum(vector<int> A, int n) { // write code here int dp[n], max_sum = INT_MIN; mem...原创 2018-04-29 17:55:54 · 280 阅读 · 0 评论 -
程序员面试金典——17.9词频统计
程序员面试金典——17.9词频统计Solution1:我的答案。利用了STL中的map或者unordered_map结构,因为unordered_map是基于哈希结构实现的,所以更好一点。class Frequency {public: int getFrequency(vector<string> article, int n, string word) { ...原创 2018-04-29 18:07:27 · 313 阅读 · 0 评论 -
程序员面试金典——17.12整数对查找
程序员面试金典——17.12整数对查找Solution1:针对重复数字的情况题目未做明确说明,虽然此题仍能AC,但有的重复数字用了1次,有的用了超过1次,要求不清晰。重点是这种前后双指针的方法要会!!!class FindPair {public: int countPairs(vector<int> A, int n, int sum) { // w...原创 2018-04-29 23:32:11 · 251 阅读 · 0 评论 -
程序员面试金典——17.2井字棋
程序员面试金典——17.2井字棋参考网址:https://www.nowcoder.com/profile/9374962/codeBookDetail?submissionId=16441975 啥是井字棋?怎么着算赢?? 看完答案后发现:任意行、列、主对角线或副对角线全部是我方旗子便能获胜啊~ Solution1:针对3*3棋盘的算法class Board {public: ...转载 2018-04-29 09:18:37 · 321 阅读 · 0 评论 -
程序员面试金典——18.13 最大字母矩阵
程序员面试金典——18.13 最大字母矩阵在牛客网上把此题的难度给大大降低了。。。。。。。。。 Solution1: 参考网址:https://www.nowcoder.com/questionTerminal/270ff3b150704f8795fd4a944a7e043a 原题比较复杂,牛客网上给简化为求某个单词出现次数和长度的最大值了class AlphaMatrix {pu...转载 2018-05-06 11:10:30 · 327 阅读 · 0 评论 -
【动态规划】程序员面试金典——11.7叠罗汉I
程序员面试金典——11.7叠罗汉I首先我来批判一下这个题目出的真是不咋滴,后来的人按理说应该在上面。但此题的意思是求最长递增子序列,即后来的人在下面,完全是为了出题而出题。。。 参考博客: [1]https://blog.csdn.net/sjt19910311/article/details/51439614 [2]https://blog.csdn.net/sjt19910311/a...转载 2018-04-26 11:44:00 · 401 阅读 · 0 评论 -
程序员面试金典——18.10字符串变换
程序员面试金典——18.10字符串变换Solution1:我的答案。穷举法,个人认为此题还是有点难度的。。。 利用了倒推法以及很高的时间复杂度才解决,并不值得推崇呀。class Change {public: int countChanges(vector<string> dic, int n, string s, string t) { ...原创 2018-05-04 11:15:40 · 288 阅读 · 0 评论 -
【To Do】程序员面试金典——18.11最大子方阵
程序员面试金典——18.11最大子方阵Solution1:我的答案。最笨的方法,时间复杂度是O(n3)O(n3)O(n^3)class SubMatrix {public: int maxSubMatrix(vector<vector<int> > mat, int n) { //穷举法??复杂度有点高欧~ // write code he...原创 2018-05-04 13:56:48 · 368 阅读 · 0 评论 -
程序员面试金典——11.7叠罗汉II
程序员面试金典——11.7叠罗汉IISolution1:动态规划,复杂度O(n2)O(n2)O(n^2)。 复杂度非最优,但思想易于理解且代码简练。 res[i]表示必须以i 元素结尾的最长递增子序列的长度, 如何得出这个长度呢? res[i]等于men[0,…,i - 1]中比men[i]小的元素对应的dp值 + 1 这也是在叠罗汉I中的solution1的思路class ...原创 2018-04-27 10:29:00 · 402 阅读 · 0 评论 -
【To Do!】程序员面试金典——11.8维护x的秩
程序员面试金典——11.8维护x的秩Solution1:我的答案。垃圾算法。。。class Rank {public: vector<int> getRankOfNumber(vector<int> A, int n) { // write code here int temp_sum = 0; vect...原创 2018-04-27 10:56:14 · 217 阅读 · 0 评论 -
【重点】程序员面试金典——番外篇之数组中的逆序对
程序员面试金典——番外篇之数组中的逆序对此题曾多次遇到,然鹅还是本能的想起来复杂度为O(n2)O(n2)O(n^2)的笨蛋方法。。。 Solution1:笨蛋方法class AntiOrder {public: int count(vector<int> A, int n) { // write code here int sum...转载 2018-04-27 11:08:31 · 195 阅读 · 0 评论 -
程序员面试金典——17.1无缓存交换
程序员面试金典——17.1无缓存交换主要是利用异或性质~ 程序员面试金典——17.1无缓存交换class Exchange {public: vector<int> exchangeAB(vector<int> AB) { // write code here if(AB.size() <= 1) ...原创 2018-04-27 11:11:17 · 221 阅读 · 0 评论 -
程序员面试金典——18.12最大和子矩阵
程序员面试金典——18.12最大和子矩阵Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]https://www.nowcoder.com/profile/963612/codeBookDetail?submissionId=15224519 思路: 动态规划 我们来分析一下最...转载 2018-05-05 14:34:41 · 248 阅读 · 0 评论 -
【To Do】程序员面试金典——9.10堆箱子
程序员面试金典——9.10堆箱子To Do!原创 2018-04-24 12:39:02 · 424 阅读 · 0 评论