
数据结构、编程算法整理
文章平均质量分 76
本专栏包括一些LeetCode原题、往年校招笔试真题的介绍及解法。
BugFree_张瑞
字节研发、QA、PM等岗位缺人,可帮内推实习/校招/社招,需要的私信我
展开
-
二分查找时间复杂度计算与分析
二分查找: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一原创 2017-04-05 21:18:41 · 17941 阅读 · 5 评论 -
科大讯飞2017秋招笔试编程题
题目描述:队友争吵思路: 感觉像是找规律题:因为最左的一个LL、最右的一个R永远不会被消去,所以我们需要做的就是最后一个L的位置减去第一个R的位置就是消去的人数。代码实现:import java.util.Scanner;public class Main { public static void main(String[] args) { ...原创 2018-05-03 19:17:59 · 6252 阅读 · 16 评论 -
巧用二分法实现数学开方(sqrt)运算
二分查找时间复杂度计算与分析implement int sqrt(int x). Compute and return the square root of x.public int sqrt(int x) { int low = 0; int high = x; while (low <= high) { long mid原创 2017-04-11 20:07:03 · 10066 阅读 · 2 评论 -
in-place操作
在刷编程题的时候,可能大家也经常遇到题目要求do in-place。起初并未在意,主要是即使没有按照要求实现,也可以AC,但总觉得有些投机取巧的嫌疑。所以就上网搜了相关概念,简单总结一下。 in-place操作,意思是所有的操作都是”就地“操作,不允许进行移动,或者称作 原位操作,即不允许使用临时变量。 举个例子,大家经常写也经常用到的”交换两个数的值”://设置初始值int x = 1,y原创 2017-04-16 18:42:20 · 21059 阅读 · 2 评论 -
三种静态查找算法:顺序、二分/折半、索引/分块查找
终于找了个时间,把三种静态查找算法简单总结了一下,与大家分享讨论。 完整源代码下载地址顺序查找简介 顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。原理是让关键字与队列中的数逐个比较,直到找出与给定关键字相同的数为止。代码实现public static int orderSearch(int arr[], int target) { for (int原创 2017-12-01 10:19:29 · 7550 阅读 · 2 评论 -
面试题:常见的多线程实战手撕代码(顺序打印数字、字母)
问题一: 一个多线程的问题,用三个线程,顺序打印字母A-Z,输出结果是1A 2B 3C 1D 2E…打印完毕最后输出一个Ok。代码一:public class forCharacter { private static char c = 'A'; private static int i = 0; public static void main(Strin...原创 2018-05-28 10:03:35 · 4121 阅读 · 6 评论 -
Catalan number卡特兰数
背景知识介绍: 卡特兰数是离散数学中的一个重要数列,是很多生活场景的一个抽象,比如买早餐、买电影票等等。在很多大公司的笔试或者面试题中也常涉及到。百度百科介绍 卡特兰数 卡特兰数是组合数学中一个常出现在各种计数问题中的数列。前20项为其前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2原创 2017-09-07 17:25:17 · 1349 阅读 · 1 评论 -
第90百分位数的概念与计算
题目描述:思路:知乎上的讨论 今天做了道题,刚开始没读懂题,网上搜了一下关于第95百分位的解释,大家各有说法,各有自己的理解。但是看了很多人的评论也是,表示基本都看不懂。 从维基百科上可以找到这么一段话:There is no standard definition of percentile, however all definitions yield similar results whe原创 2017-09-21 21:01:22 · 55539 阅读 · 9 评论 -
Java 判断一个点是否在一个三角形内
题目描述: 如何判断一个点是否在一个三角形内。测试样例:自定义的POINT类:class POINT{ int x; int y; public POINT(int x,int y){ this.x = x; this.y = y; }}思路一:面积法: 如果一个点在三角形内,其与三角形的三个点构成的三个子三角形的面积等于大三角形原创 2017-10-12 12:55:55 · 14048 阅读 · 3 评论 -
剑指offer:数组中出现次数超过一半的数字
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。测试样例:例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路一(不推荐):首先将容器中的数字排序,则排序结束后,相同的数字都在相邻位置,直接判断数组当前位置的数字与(数组位置+数组一半长度位置)的数...原创 2017-07-31 11:16:43 · 1466 阅读 · 7 评论 -
搜狐笔试:Kolakoski sequence
写在前面: 昨晚本来是帮师姐做笔试题的,结果gg了,然后网上搜了一下,相关的资料和实现也比较少,所以决定总结一下,共同学习。欢迎各位交流想法,提意见。题目描述: 偷懒,直接放的图片^_^ 要求:给定一数组,输出其构造的Kolakoski序列的前n项。背景知识介绍:百度百科介绍 Kolakoski序列是一个仅由1和2组成的无限数列,是一种通过“自描述”来定义的数列。他在整数数列大全网站上排名第原创 2017-08-29 10:49:07 · 1306 阅读 · 0 评论