随笔分类 -  算法

工作面试所刷的部分题目记录
摘要:第40题 最小的k个数 题目 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路 最直观的是先排序,在获取前k个数。 自己写的Low代码 import java.util.ArrayList; public class S 阅读全文
posted @ 2018-07-11 21:17 LynnMin 阅读(122) 评论(0) 推荐(0)
摘要:第62题 圆圈中最后剩下的数字 题目 0,1,,....,n 1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 思路 创建环形链表,自己定义了一个链表节点类; 自己写的low代码 // 环形链表; public class Solution 阅读全文
posted @ 2018-07-11 20:55 LynnMin 阅读(154) 评论(0) 推荐(0)
摘要:第57题 和为s的数字 题目 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 思路 首先应该都会想到用双层for循环的思路遍历数组来查找,但是这样的时间复杂度高。可以采用首尾同时进行,定义两个指针标志。具体过程可以见下 阅读全文
posted @ 2018-07-11 00:45 LynnMin 阅读(171) 评论(0) 推荐(0)
摘要:滑动窗口最大值 题目 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[ 阅读全文
posted @ 2018-07-11 00:01 LynnMin 阅读(145) 评论(0) 推荐(0)
摘要:第30题 包含min函数的栈 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数。 解题思路 尴尬完全懵逼的没有看懂题目的意思,最后是参看了剑指offer的解题思路写的代码。 剑指offer的解题思路 建立一个辅助栈,保存当前数据栈的最小值和次小值。 自己写的low代 阅读全文
posted @ 2018-07-09 19:28 LynnMin 阅读(211) 评论(0) 推荐(0)
摘要:第16题 数值的整数次方 题目: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路 看到有点懵,第一感觉觉得是不是应该考虑0的0次或者负数情况,还有就是浮点类型没办法使用"="号,最后自己以偷懒的方式直接调用Java的API,如果面 阅读全文
posted @ 2018-07-09 13:20 LynnMin 阅读(191) 评论(0) 推荐(0)
摘要:第22题 链表中倒数第k个节点 题目: 输入一个链表,输出该链表中倒数第k个结点。 我的思路 之前好像看过类似的题目,所以思路大致为,建立连个临时节点p和q,p先走k步到达第k个节点,然后q节点开始走,到p到达尾部指向空的时候,q就是倒数第k个节点。 我的low代码 链接:https://www.n 阅读全文
posted @ 2018-07-06 22:08 LynnMin 阅读(148) 评论(0) 推荐(0)
摘要:第24题 反转链表 题目: 输入一个链表,反转链表后,输出新链表的表头。 我的思路: 创建链表一般可分为头插法和尾插法两种方式,那么这里可以通过遍历原链表采用头插法来建立新链表。 自己的low代码 优雅代码 阅读全文
posted @ 2018-07-06 21:19 LynnMin 阅读(140) 评论(0) 推荐(0)
摘要:面试题31:栈的压入、弹出序列 题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序 阅读全文
posted @ 2018-07-06 20:39 LynnMin 阅读(235) 评论(0) 推荐(0)