校招笔试总结
文章平均质量分 74
HUST_Miao
这个作者很懒,什么都没留下…
展开
-
今日头条2017后端工程师笔试题
1、最大映射有 n 个字符串,每个字符串都是由 A-J 的大写字符构成。现在你将每个字符映射为一个 0-9 的数字,不同字符映射为不同的数字。这样每个字符串就可以看做一个整数,唯一的要求是这些整数必须是正整数且它们的字符串不能有前导零。现在问你怎样映射字符才能使得这些字符串表示的整数之和最大?输入描述:每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n , 接下来有 n 行,每...原创 2021-03-07 11:58:37 · 473 阅读 · 0 评论 -
笔试总结--链表操作
1.输入一个链表,输出该链表中倒数第k个结点。//链表节点类public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}最简单粗暴一点的方法:先遍历一次,得到链表长度l,再遍历一次,遍历到l-k+1处的节点即为所...原创 2018-08-01 10:08:16 · 300 阅读 · 0 评论 -
常用排序算法(一)插入排序、希尔排序、冒泡排序
1. 插入排序算法最简单的排序算法之一是插入排序(insertion sort)。插入排序由N-1趟(pass)排序组成。对于P=1趟到P=N-1趟,插入排序保证从位置0到位置P上的元素为已排序状态。插入排序利用了这样的事实:位置0到位置P-1上的元素是已排过序的。下图显示一个简单的数组在每一趟插入排序后的情况。 C语言给出算法参考程序如下,显然,插入排序算法复杂度为O(N2)O...原创 2018-08-01 21:14:13 · 1256 阅读 · 0 评论 -
Java中Scanner用法总结
最近在做OJ类问题的时候,经常由于Scanner的使用造成一些细节问题导致程序不通过(最惨的就是网易笔试,由于sc死循环了也没发现,导致AC代码也不能通过。。。),因此对Scanner进行了一些总结整理。Scanner类简介Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实...转载 2018-08-02 11:32:53 · 740 阅读 · 1 评论 -
CPU的大小端模式以及判断方法
不同体系结构的CPU,数据在内存中存放的排列顺序是不一样的。存储器中对数据的存储是以字节(Byte)为基本单位的,因此,字(Word)和半字(Half-Word)在存储器中就有两种次序,分别称为:大端模式(Big Endian)和小端模式(Little Endian)。大端存储模式是指字或半字的最高...原创 2018-08-02 21:17:53 · 2009 阅读 · 0 评论 -
网络分层模型简介
1. OSI(Open System Interconnect )参考模型自上而下:应用层,表示层,会话层,传输层,网络层,链路层,物理层 物理层:最底层或第一层,该层包括物理联网媒介,双绞线、同轴电缆、光纤等。物理层的协议产生并检测电压以便发送和接收携带数据的信号,一般是0 1信号。传输这种信息就要用到物理媒体,双绞线、同轴电缆、光纤等,但具体的物理媒体不在OSI的7层模型内,...原创 2018-08-03 14:42:39 · 8971 阅读 · 0 评论 -
查找连续最长子串,该子串中任何两个字符不能相同,返回子串长度
对于找子字符串问题,有一个通用的方法,尽管有时候可能复杂度比较高,在想不出更好的算法时不失为一种可行的方法。那就是遍历所有的子串。遍历子串的方法,就要用到字符串后缀子串和前缀子串,下面我先简单介绍一下字符串的后缀前缀子串数组。以字符串abcde为例,后缀子串有5种,5为字符串长度后缀子串 长度 e 1 de 2 cde 3 bcde 4 a...原创 2018-08-24 11:08:41 · 354 阅读 · 0 评论 -
最大连续子序列的和
最大连续子序列和最大连续子序列和是一个常见的面试题,也是算法中经典的一个问题。作为总结,今天就从最简单的暴力求解,写道目前能达到最好的线性时间复杂度的算法。问题描述:找出一个整型数组中的最大连续子序列的和 测试用例:int[] a = { 1, -3, 7, 8, -4, 12, -10, 6 }; 输出:23//即最大连续子序列和是 7 + 8 - 4+ 12 = 231、O...转载 2018-09-04 15:47:29 · 950 阅读 · 0 评论 -
硬币拼凑指定面额的动态规划算法
拼凑钱币题目来源:美团点评2017秋招笔试题题目描述:给你六种面额1、5、10、20、50、100元的纸币,假设每种币值的数量都足够多,编写程序求组成N员(N为0-10000的非负整数)的不同组合的个数。输入描述:输入为一个数字N,即需要拼凑的面额输出描述:输出也是一个数字,为组成N的组合个数。示例1输入5输出2解题思路:这个题的思路是动态规划的算法思路...转载 2018-09-06 18:01:44 · 6785 阅读 · 0 评论 -
递归算法--斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 很容易我们想到使用递归求解:public class Solution { public int Fibonacci(int n) { if(n == 0) return 0; if(n == 1) ...原创 2018-07-27 15:35:09 · 65555 阅读 · 5 评论 -
卡特兰数
问题引出若一序列进栈顺序为e1,e2,e3,e4,e5,问存在多少种可能的出栈序列()问题分析 卡特兰数卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 : 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, ...转载 2018-07-27 15:17:15 · 244 阅读 · 0 评论 -
C++vector的使用总结及常用vector操作
一、C++ vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分,使用时需包含头文件:#include <vector>二、C++ vector类有两种使用方式:第一种:STL方式vector< st...转载 2018-07-12 22:10:22 · 13501 阅读 · 4 评论 -
java中将字符串翻转的几种方法
对于字符串处理问题,笔试中我们经常会遇到直接或间接的需要将字符串翻转(颠倒)的问题,下面介绍(但不限于)几种方法:方法1:使用toCharArray( )方法,然后反向赋值import java.util.*;public class Test5{ public static void main(String[] args){ Scanner sc = new Scann...原创 2018-05-04 10:42:30 · 1811 阅读 · 1 评论 -
Ch1 0 1背包问题及其实例详解
题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}这个方程...原创 2018-05-10 22:29:43 · 1388 阅读 · 0 评论 -
连续重复子字符串查找
本题来自2018深信服提前批笔试编程题部分。题目描述:一个重复子字符串是由两个相同的字符串首尾拼接而成,例如abcabc便是长度为6的一个重复字符串,而abcba则不存在重复字符串。给定任意字符串,请帮小强找出其中的最长重复子串。输入描述:输入一个字符串s,其中s长度小于1e4而且只包含数字和字母。输出描述:输出一个整数,表示s的最长重复子串长度,若不存在则输出0.示例:输入xabcabcx输出6...原创 2018-06-22 23:00:24 · 11669 阅读 · 0 评论 -
详解C语言指针函数、函数指针、函数指针数组
在C语言中,指针是一个很重要但是又很容易弄错的概念,也可以说指针就是C语言的灵魂,所以说学好指针对于完全掌握C语言是一个必须的过程。而在指针中,指针函数、函数指针、指针函数数组、函数指针数组、指向函数指针数组的指针等等概念看着又绕又头疼。本问总结了一下以上一些概念以及用法,并给出例程深化理解。1. 指针函数指针函数就是返回指针值的函数,本质是一个函数。所以指针函数等价于“返回值为指针的函数...原创 2018-07-09 11:08:24 · 23686 阅读 · 12 评论 -
C/C++中assert() 使用方法
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression );assert的作用...转载 2018-07-09 20:16:10 · 740 阅读 · 0 评论 -
C语言基础复习----for循环运行机制
直接上代码#include<iostream>using namespace std;int minCount = 0;int min(int a, int b){ minCount++; return a < b ? a : b;}int maxCount = 0;int max(int a, int b){ maxCount+...原创 2018-07-09 20:40:15 · 567 阅读 · 0 评论 -
C/C++结构体字节对齐
稍微了解过C/C++的人,都会了解它们在建立一个结构体的时候,会进行字节对齐操作,所以往往比世界变量占用的字节数要多出一些,而如何减少内存占用,计算内存使用量,也是很多面试题里经常出现的题目。 但是稍微当我们真的不想要字节对齐的时候,有没有办法取消字节对齐?答案是可以,就是在结构体声明当中,加上attribute ((packed))关键字,它可以做到让我们的结构体,按照紧凑排列的方式,占用内存...原创 2018-07-10 09:09:33 · 1927 阅读 · 0 评论 -
Java中Vector和ArrayList的区别
Java Vector 类Vector类实现了一个动态数组。和ArrayList和相似,但是两者是不同的: 1. Vector是同步访问的。 2. Vector包含了许多传统的方法,这些方法不属于集合框架。 Vector主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。 Vector类支持4种构造方法。第一种构造方法创建一个默认的向量,默认大小为10: Ve...原创 2018-07-12 21:05:38 · 486 阅读 · 0 评论 -
网易2018秋招内推笔试
问题一问题描述 小易有一个长度为n的整数序列,a_1,…,a_n。然后考虑在一个空序列b上进行n次以下操作: 1、将a_i放入b序列的末尾 2、逆置b序列 小易需要你计算输出操作n次之后的b序列。输入描述输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。 第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。输出描述 在一行中输...原创 2018-04-20 09:42:39 · 763 阅读 · 0 评论