FreeeLinux's blog

没有迷路的人

排序:
默认
按更新时间
按访问量
RSS订阅

腾讯笔试题--微信红包

本来这题没什么难度,不值得我写博客的,谁知道一个失误花了半小时才做出来。写下来告诫自己不要再犯错。 春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。 ...

2017-02-01 20:36:15

阅读数 2117

评论数 2

求数组中最小的k个数以及海量数据最大堆、multiset解决方案

【题目】 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 【方案一】 主要有两种方案。第一是利用我们熟知的 partition 算法,它是快速排序的核心,相信每个人都会。它可以用来求取数组的任意第 k 大...

2017-01-02 20:29:32

阅读数 1363

评论数 0

数组中出现次数超过一半的数字

【题目】 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 【分析】 采用阵地攻守的思想: 第一个数字作为第一个士兵...

2017-01-02 14:04:16

阅读数 304

评论数 0

判断一棵二叉树是不是另一棵的子结构问题

【问题】 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 【分析】 这个问题其实不难,不过要注意代码上递归的技巧,并不是所有情况都是和我们用一个递归函数来解决的,这道题就用分类递归的思想,很让我受益。 【代码如下】 clas...

2016-12-26 11:50:45

阅读数 1347

评论数 0

位运算之不使用任何比较判断比较两个数大小问题

【题目】 对于两个32位整数a和b,请设计一个算法返回a和b中较大的。但是不能用任何比较判断。若两数相同,返回任意一个。 给定两个整数a和b,请返回较大的数。 测试样例: 1,2 返回:2 【分析】 不用分析了,直接给代码,我第一次没有仔细读题,实际上用了判断的,解法1作...

2016-12-19 18:00:24

阅读数 3883

评论数 0

最大二叉搜索子树问题

【题目】 有一棵二叉树,其中所有节点的值都不一样,找到含有节点最多 的搜索二叉子树,并返回这棵子树的头节点. 给定二叉树的头结点root,请返回所求的头结点,若出现多个节点最多的子树,返回头结点权值最大的。 【分析】 最大二叉搜索子树,我们只需要使用三个变量保存每个结点为根的子...

2016-12-19 13:39:08

阅读数 628

评论数 0

二叉树最远距离问题

【题目】 从二叉树的节点A出发,可以向上或者向下走,但沿途的节点只能经过一次,当到达节点B时,路径上的节点数叫作A到B的距离。对于给定的一棵二叉树,求整棵树上节点间的最大距离。 给定一个二叉树的头结点root,请返回最大距离。保证点数大于等于2小于等于500. 【分析】 二叉树...

2016-12-19 11:04:33

阅读数 634

评论数 0

折纸问题与二叉树

【题目】 请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。 给定折的次数n,请返回从上...

2016-12-19 10:50:38

阅读数 611

评论数 0

判断一棵树是否是完全二叉树

【题目】 有一棵二叉树,请设计一个算法判断它是否是完全二叉树。 给定二叉树的根结点root,请返回一个bool值代表它是否为完全二叉树。树的结点个数小于等于500。 【分析】完全二叉树树主要有两点: 当一个结点有右孩子,但是没有左孩子,直接返回false当一个节点有左孩子无...

2016-12-19 10:29:01

阅读数 5787

评论数 1

判断一个单链表是否是回文链表

思路有三种: 1.用栈顺着链表保存所有元素,然后依次出栈从头再比较。时间复杂度O(N),空间复杂读O(N)。 2.还是栈,不过只保存前一半元素,然后和后一半对比即可。时间复杂度O(N),空间复杂度O(N/2)。 3.利用链表逆序思想,将链表后半部分逆序。然后从前到中和从后到中一一对比即可。这...

2016-12-14 01:02:11

阅读数 2394

评论数 0

单链表的k逆序

【题目】 有一个单链表,请设计一个算法,使得每K个节点之间逆序,如果最后不够K个节点一组,则不调整最后几个节点。例如链表1->2->3->4->5->6->7->8->null,K=3这个例子。调整后为,3->2->1->6->...

2016-12-13 21:27:30

阅读数 656

评论数 0

环形链表插值题

有一个整数val,如何在节点值有序的环形链表中插入一个节点值为val的节点,并且保证这个环形单链表依然有序。 给定链表的信息,及元素的值A及对应的nxt指向的元素编号同时给定val,请构造出这个环形链表,并插入该值。 测试样例: [1,3,4,5,7],[1,2,3,4,0],2 返回:{1,...

2016-12-12 21:52:40

阅读数 606

评论数 0

链表的分化(Partition一分为二)

对于一个链表,我们需要用一个特定阈值完成对它的分化,使得小于等于这个值的结点移到前面,大于该值的结点在后面,同时保证两类结点内部的位置关系不变。 给定一个链表的头结点head,同时给定阈值val,请返回一个链表,使小于等于它的结点在前,大于等于它的在后,保证结点值不重复。 测试样例: {...

2016-12-12 21:43:38

阅读数 514

评论数 0

构造数组的MaxTree

【题目】 对于一个没有重复元素的整数数组,请用其中元素构造一棵MaxTree,MaxTree定义为一棵二叉树,其中的节点与数组元素一一对应,同时对于MaxTree的每棵子树,它的根的元素值为子树的最大值。现有一建树方法,对于数组中的每个元素,其在树中的父亲为数组中它左边比它大的第一个数和右边比...

2016-12-12 12:19:55

阅读数 537

评论数 0

拼接最小字典序 --字符串数组

对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。 给定一个字符串数组strs,同时给定它的大小,请返回拼接成的串。 测试样例: ["abc","de"],2 "abcde&...

2016-12-10 21:05:16

阅读数 1268

评论数 0

相邻两数最大差值

有一个整形数组A,请设计一个复杂度为O(n)的算法,算出排序后相邻两数的最大差值。 给定一个int数组A和A的大小n,请返回最大的差值。保证数组元素多于1个。 测试样例: [1,2,5,4,6],5 返回:2 解析:使用bucket排序思想,把大小为n的数组分成(max-min)/n个区间...

2016-12-09 19:56:33

阅读数 670

评论数 0

最短排序子数组

对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。 给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的长度。(原序列位置从0开始标号,若原序列有序,返回0)。保证A中元素均为正整数。 测试样例: [1,4,6,5,9,10],6 返回:2 分析...

2016-12-09 13:34:06

阅读数 261

评论数 0

矩阵的最小路径和 [DP]

从本文开始,我打算多刷一些动态规划的题。不仅如此,各种典型算法也会在分类刷一刷。 【题目】 给定一个矩阵,从左上角开始每次只能向右或者右下走,最后到达右下角的位置,路径上所有数字累加起来就是路径和,返回所有路径中最小的路径和。 【举例】 如果给定的m如下: 1,3,5,9 8,1,3,4 5,...

2016-12-08 15:55:03

阅读数 575

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭