输入一个字符串, 打印出该字符串中字符的所有排列。举个例子,123的全排列有123、132、213、231、312、321这六种。 字符串全排列扩展—-八皇后问题 1、思路: 递归思路:全排列就是从第一个…
标签:剑指offer
计数排序及拓展
在字符串中找出第一个只出现一次的字符。(35) 对公司员工的年龄进行统计排序。 计数排序(适用于有边界的数值统计)。 1、思路: 因为字符只有256个数字,设置一个hashtable只有256*4=1K字节,这样时间…
快速排序及拓展
快排的递归版本和非递归版本。 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。(29) 输入n个数,找出其中最小的k个数。(30) 1、思路: 递归版本:首先随机选定分割数,对数组中小于该分割数的放在左…
二分查找及拓展
请快速写出二分查找的代码。 把一个数组最开始的若干个元素搬到数组的末尾,叫数组的旋转。输入一个递增排序的数组的一个旋转,输出数组的最小元素。(8) 统计一个数字在排序数组中出现的次数。(38) 1、思路: 要求输入数…
位运算
输入一个整数,输出该数二进制表示中1的个数。附加题:判断一个数是否是2的幂。 一个整数数组里除了两个数字以外,其他数字都出现两次。请找出只出现一次的数字,要求时间复杂度O(n),空间复杂度O(1)。 写一个函数,求两个整…
大数问题
输入数字n,按顺序打印出从1到最大的n位十进制。 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印出所有数字中最小的一个。 大数相加和大数相乘。 1、思路: 首先想到的方法必然是确定上限,比如n=3,上限…
《剑指offer》全部题目-含Java实现
陆续刷了好久,算是刷完了《剑指offer》,以下全部AC代码,不一定性能最优,如有错误或更好解答,请留言区指出,大家共同交流,谢谢~ 1.二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按…
剑指offer
今天完成了剑指offer上的66道编程题,感觉自己还是很多代码实现能力和算法积累都还不够!还需要继续联系,坚持自己独立写代码实现。 最后将今天的两道题目奉上,都有异曲同工之妙: 矩阵中的路径: #inclu…
内存溢出(heap corruption detected:)
今天又遇到了上次出现的bug,然后百度了一下,想起来这是内存溢出的毛病,故记录下来! 出现的问题就是这样: heap corruption detected: after normal block(#xxx…
while (cin>>str)退出死循环
今天在练习的时候突然发现了这个问题,百度之感觉还挺常见的,故记之! //题目描述 // //写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。 // //输入描述 : //输入一个十六进制的数值字符串…
offer--链表反转和从尾到头打印链表
这个是高频的面试题,今天总结了一些。反转链表用三个指针实现,返回新链表的头节点;而从尾到头打印,应用栈实现,返回vector整个链表。 //题目描述 // //输入一…
回文链表
回文链表其实也是链表反转的变形;也可以用栈实现。 //对于一个链表,请设计一个时间复杂度为O(n), 额外空间复杂度为O(1)的算法,判断其是否为回文结构。 //给定一个链表的头指针A,请返回…