- 博客(5)
- 收藏
- 关注
原创 数字在排序数组中出现的次数
题目描述统计一个数字在排序数组中出现的次数。python中直接利用count方法,但是这肯定不是面试官想要的结果~所以,由题目可以知道是已经排序的数组,那么很容易就想到二分查找,利用二分查找我们可以找到这个数字,但是这个数字出现的次数却还是不知道,那么我们可以通过查询这个数的前后数字来找到这个数字最先出现的下标及最后出现的下标,但是此时时间复杂度还是有可能为o(n). 和我们直接遍历来查找这个数字...
2018-07-15 16:40:05 130
原创 整数中1出现的次数(从1到n中1出现的次数)
题目描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。刚开始拿到这个题目想的就是一个数一个数的计算,通过取余和除法运算,后面通过参考...
2018-07-15 16:24:21 285
原创 最小的k个数
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。自己的思路就是如果k<n时,对n个数进行排序就可以知道满足条件的数字是哪些了;如果k>n,则返回False# -*- coding:utf-8 -*- class Solution: def GetLeastNumbers_Solution(self...
2018-07-15 15:58:39 256
原创 数组中出现超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。剑指offer书中给出了两种解决思路:1.基于快速排序;2.基于数组的特性首先给出自己的思路:比较常规的解法,但是能在o(n)的时间内完成,将对应元素与其下标进行对应,次数就在0的基...
2018-07-15 15:39:39 633
原创 栈的压入弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解决这个问题最常规的思路就是建立一个辅助栈,通过辅助栈来判断是否能得到出栈顺序。整个过程可...
2018-07-15 15:01:59 204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人