程序员代码面试指南
Liickia
这个作者很懒,什么都没留下…
展开
-
栈与队列:设计一个有getMin功能的栈(C++带对数器版)
题目:实现一个特殊的栈,在实现栈的基本操作的基础上,再实现返回栈中最小元素的操作。要求:①pop、push、getMin操作的时间复杂度都为O(1)。②设计的栈类型可以使用现成的栈结构.分析:该题为左程云《程序员代码面试指南》第一章的题,难度为★。思路是使用两个栈,一个栈是正常栈,另一个栈用于保存每一步的最小值。对数器中的标准方法采用对栈的遍历找到最小值,该方法时间复杂度为O(N)。#inc...原创 2019-04-10 10:29:58 · 291 阅读 · 0 评论 -
背包问题
#include <iostream>#include <vector>#include "a_arrayAndMatrix.h"using namespace std;vector<bool> knasSack(int n, int c, int *wight, int *value);int main(){ int *weight ...原创 2019-06-27 23:08:16 · 10827 阅读 · 2 评论 -
链表:#92部分翻转链表
★题目:反转部分单向链表给定一个单项链表的头结点head,以及两个整数from和to,在单项链表上把第from个节点到第to个节点这一部分进行反转。例如:1->2->3->4->5->null,from=2,to=5 结果为1->4->3->2->5->null再如:1->2->3->null,from=1,...原创 2019-07-09 11:34:22 · 479 阅读 · 0 评论 -
vivo2020提前批笔试题
线上笔试题1.有两个整型数组A和B,找出数组A中存在而B中不存在的元素,并保持原顺序2.部分反转单项链表3.背包问题原创 2019-07-09 11:36:10 · 1536 阅读 · 0 评论 -
中兴--维克多博士问题(背包问题升级版)
题目描述:维克多博士创造了一个裂变反应堆,可取用处于液体状态的放射性物质。反应堆的容量是V加仑。他有N瓶的放射性液体,每个都有一定的质量和一定的体积。当液体倒入反应堆时,也产生一些单位的能量。现在,维克多想要将能量输出最大化。但是,有一个限制条件。他研究了原子元素的物理知识和历史,认识到反应堆内放射性液体的总量不能超过特定的临界质量M,否则反应就会失控,并引发剧烈的爆炸。写一个算法,帮助他从反应...原创 2019-07-25 11:11:56 · 1602 阅读 · 0 评论 -
丑陋的字符串--七月牛客模拟笔试题解(一)
丑陋的字符串| 时间限制:1秒 | 内存限制:32768K | 语言限制: 不限【丑陋的字符串】牛牛喜欢字符串,但是他讨厌丑陋的字符串。对于牛牛来说,一个字符串的丑陋值是字符串中相同连续字符对的个数。比如字符串“ABABAABBB”的丑陋值是3,因为有一对"AA"和两对重叠的"BB"。现在给出一个字符串,字符串中包含字符’A’、‘B’和’?’。牛牛现在可以把字符串中的问号改为’A’或者’B’。...原创 2019-07-25 14:37:19 · 454 阅读 · 0 评论 -
逃离农场--七月牛客模拟笔试题解(二)
逃离农场| 时间限制:2秒 | 内存限制:32768K | 语言限制: 不限【逃离农场】牛牛在农场饲养了n只奶牛,依次编号为0到n-1, 牛牛的好朋友羊羊帮牛牛照看着农场.有一天羊羊看到农场中逃走了k只奶牛,但是他只会告诉牛牛逃走的k只奶牛的编号之和能被n整除。你现在需要帮牛牛计算有多少种不同的逃走的奶牛群。因为结果可能很大,输出结果对1,000,000,007取模。例如n = 7 k = ...原创 2019-07-25 14:51:48 · 520 阅读 · 0 评论 -
字符串:判断两个字符串是否互为变形词
//★题目:判断两个字符串是否互为变形词//要求:给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样// 那么str1与str2互为变形词。请实现函数判断两个字符串是否互为变形词//分析:假设字符的编码值在0-255之间,申请长度为256的数组,map[a] = b 代表字符a出现了b次// 遍历str1统计每种字符的...原创 2019-06-24 10:53:18 · 482 阅读 · 0 评论 -
C++基于比较的排序算法实现
#include <iostream>#include <algorithm>#include <time.h>using namespace std;void swap(int *arr, int m, int n);void printArray(int *arr, int size);int *generateRandomArray(int...原创 2019-06-25 14:39:22 · 310 阅读 · 0 评论 -
栈与队列:猫狗队列 “?”(C++版)
//★题目:猫狗队列//要求:宠物、狗和猫的类如下:// class Pet {// string type;// public:// Pet(string type) {// this->type = type;// }// string getPetType() {// return this->type;// ...原创 2019-04-11 20:18:48 · 276 阅读 · 0 评论 -
栈与队列:用一个栈实现另一个栈的排序(C++带对数器版)
//★题目:用一个栈实现另一个栈的排序//要求:一个栈中的元素类型为整型,实现该栈从顶到底从大到小的顺序排序,只允许申请一个额外的栈和若干变量//分析:如果cur小于或等于help的栈顶元素,则将cur直接压入help// 如果cur大于help的栈顶元素,则将helo的元素逐一弹出,逐一压入stack// 直到cur小于或等于help的栈顶元素,再将cur压入...原创 2019-04-12 11:00:26 · 239 阅读 · 0 评论 -
数组与矩阵:转圈打印矩阵(C++版)
//★题目:转圈打印矩阵//要求:给定一个整型矩阵matrix,请按照转圈的方式打印它。要求额外空间复杂度为O(1)。// 例如: 1 2 3 4// 5 6 7 8// 9 10 11 12// 13 14 15 16// ...原创 2019-04-16 10:40:57 · 468 阅读 · 0 评论 -
备战2019秋招之程序员代码面试指南(左程云)C++
2019年4月,开始备战2019年秋招,岗位C++研发岗,最后如果有时间的话还会冲刺一下图像算法岗。本系列博客第一部分是刷《程序员代码面试指南》的笔记和代码,左神书中的代码为java版,自己手撸时改为了C++版。所有代码均为自己未看解析前手撸,刷题顺序没有按照书中的目录来,而是从易到难的顺序来。...原创 2019-04-09 21:59:51 · 1093 阅读 · 0 评论 -
数组与矩阵:在行和列都排好序的矩阵中找数
//★题目:在行和列都排好序的矩阵中找数//要求:给定一个有N×M的整型矩阵matrix和一个整数K,matrix的每一行每一列都是排好序的。// 实现一个函数,判断K是否在matrix中。要求时间复杂度为O(N+M),空间复杂度为O(1)// 例如:0 1 2 5// 2 3 4 7// 4 4...原创 2019-04-22 10:03:44 · 179 阅读 · 0 评论 -
数组与矩阵:将正方形矩阵顺时针转动90°(C++版)
//★题目:将正方形矩阵顺时针转动90°//要求:给定一个N×N的矩阵matrix,把这个矩阵调整成顺时针转动90°后的形式。要求额外空间复杂度为O(1)// 例如:1 2 3 4 调整后为 13 9 5 1// 5 6 7 8 14 10 6 2// ...原创 2019-04-17 18:35:26 · 860 阅读 · 0 评论 -
数组与矩阵:奇数下标都是奇数或者偶数下标都是偶数
//★题目:奇数下标都是奇数或者偶数下标都是偶数//要求:给定一个长度不小于2的数组arr,实现一个函数调整arr// 要么让所有的偶数下标都是偶数,要么让所有的奇数下标都是奇数// 时间复杂度O(N),空间复杂度O(1)#include <iostream>#include <vector>using namespace std;v...原创 2019-04-26 19:04:53 · 684 阅读 · 0 评论 -
数组与矩阵:不包含本位置值的累乘数组(C++)
//★题目:不包含本位置值的累乘数组//要求:给定一个整型数组arr,返回不包含本位置值的累乘数组。// 时间复杂度O(N);除需要返回的结果数组外,空间复杂度O(1)// 例如:arr = [2,3,1,4],返回[12,8,24,6]。除自己外,其他位置上累乘//分析:主要考虑数组中零元素的个数#include <iostream>#include ...原创 2019-04-26 19:05:57 · 268 阅读 · 0 评论 -
数组与矩阵:子数组的最大累加和问题(C++)
//★题目:子数组的最大累加和问题//要求:给定一个数组arr[],返回子数组的最大累加和。// 时间复杂度O(N),空间复杂度O(1)// 例如:arr = [1,-2,3,5,-2,6,-1],所有子数组中[3,5,-2,6]可以累加出最大的和12,return 12#include <iostream>#include <vector>...原创 2019-04-26 19:24:00 · 614 阅读 · 0 评论 -
数组与矩阵:“之”字型打印矩阵(C++版)
//★题目:“之”字型打印矩阵//要求:给定一个矩阵matrix,按照“之”字型的方式打印这个矩阵。要求额外空间复杂度为O(1)// 例如: 1 2 3 4// 5 6 7 8// 9 10 11 12// “之”字形打印结果为:1,2,5,9,6,3,4,7,10,11,8,12#i...原创 2019-04-18 10:41:05 · 1002 阅读 · 0 评论 -
数组与矩阵:自然数数组的排序
//★题目:自然数数组的排序//要求:给定一个长度为N的整型数组arr,其中有N个互不相等的自然数1~N,请实现arr的排序// 但是不要把下标0~N-1位置上的数通过直接赋值的方式替换成1~N// 时间复杂度O(N),空间复杂度O(1)#include <iostream>#include <vector>using namespace...原创 2019-04-23 20:08:39 · 312 阅读 · 0 评论 -
数组与矩阵:需要排序的最短子数组长度(C++版)
//★题目:需要排序的最短子数组长度//要求:给定一个无序数组arr,求出需要排序的最短子数组长度。// 例如:arr = [1,5,3,4,2,6,7],返回4,因为只有[5,3,4,2]需要排序#include #include using namespace std;int getMinLength(vector matrix);void printVector1(v...原创 2019-04-19 11:34:27 · 262 阅读 · 0 评论 -
数组与矩阵:数组的partition调整
//★题目:数组的partition调整//要求:给定一个有序数组arr,调整arr是的这个数组的左半部分没有重复元素且升序,而不用保证右半部分有序// 例如:arr = [1,2,2,2,3,3,4,5,6,6,7,7,8,8,8,9],调整后为arr = [1,2,3,4,5,6,7,8,9,.....]//补充题目:给定一个数组arr,其中只可能包含有0、1、2三个值,请实现...原创 2019-04-29 10:14:44 · 261 阅读 · 0 评论 -
左神视频:前缀树(C++版)
此文件为.h文件,引用后调用相应的接口即可。#pragma once/* 前缀树(字典树)*/#include <iostream>using namespace std;class TrieNode{public: int path;//当前字母被经过的次数 int end;//当前单词出现的次数 TrieNode *next[26]; TrieNode...原创 2019-05-08 14:29:34 · 421 阅读 · 0 评论 -
哈夫曼递归问题--最小代价切割金条
题目出自左神算法初级班第四期第八个视频#pragma once//问题:切金条问题//关键词:贪心、哈夫曼编码//描述:一块金条切成两半,需要花费和长度数值一样的铜板。求最省铜板的切金条方法// 例如,给定数组[10,20,30],代表要把长度为10+20+30=60的金条分成10,20,30三个部分// 如果先把长度为60的金条分成10和50,花费60,// ...原创 2019-05-10 10:34:34 · 887 阅读 · 0 评论 -
随机的机器人--七月牛客模拟笔试题解(三)
随机的机器人| 时间限制:2秒 | 内存限制:32768K | 语言限制: 不限【随机的机器人】有一条无限长的纸带,分割成一系列的格子,最开始所有格子初始是白色。现在在一个格子上放上一个萌萌的机器人(放上的这个格子也会被染红),机器人一旦走到某个格子上,就会把这个格子涂成红色。现在给出一个整数n,机器人现在会在纸带上走n步。每一步,机器人都会向左或者向右走一个格子,两种情况概率相等。机器人做出...原创 2019-07-25 15:48:18 · 413 阅读 · 0 评论