02 2022 档案

摘要:高效求解一个2的N次方幂的算法 解法:时间复杂度在O(log N),其中log N的下标可以是k=2,3,4......(例如logk N),但是它们统称为O(log N)。 思路? 我们可以将2的N次方幂的指数N从1每次以两倍(三倍、四倍.....,但是它们的执行次数都是logkN)的速度往上递增 阅读全文
posted @ 2022-02-28 00:19 天空之城—我的理想国 阅读(982) 评论(0) 推荐(0) 编辑
摘要:最长连续递增子序列(部分有序) 是什么? 在一个序列中,序列中的某段呈递增(递减)趋势,且一个序列中有很多段此序列,求其中最长的一个最长递增(递减)子序列。例如[1,9,2,5,7,3,4,6,8,0],则最长递增子序列为[3,4,6,8]. 思路: 像此类型的问题,我们可以采用两个类似于指针的标识 阅读全文
posted @ 2022-02-27 15:49 天空之城—我的理想国 阅读(127) 评论(0) 推荐(0) 编辑
摘要:在有空字符串的有序字符串数组中查找 是什么? 存在一个排序后的字符串数组,其中散布着一些空字符串。根据用户输入的字符串进行索引。例如,{'a' , '' , 'ac' , '' , 'ad' , 'b' , '' , 'ba'}有序字符串数组。 思路? 重点:只要是存在有序的序列并且进行查找,我们可 阅读全文
posted @ 2022-02-26 23:46 天空之城—我的理想国 阅读(56) 评论(0) 推荐(0) 编辑
摘要:旋转数组的最小数字(改造二分法) 是什么? 把一个数组最开始若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小数元素。例如,数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. 思路? 根据题目所给的数组,我们可以来了解 阅读全文
posted @ 2022-02-26 15:25 天空之城—我的理想国 阅读(24) 评论(0) 推荐(0) 编辑
摘要:上楼梯问题(跳台阶问题) 是什么? 小白正在上楼梯,楼梯有N阶台阶,小白可以一次性上1阶,2阶或者是3阶,实现一个方法,计算小白有多少种走完楼梯的方式。(青蛙正在正在跳台阶,台阶有N层,青蛙可以一次性上1阶,2阶或者是3阶,实现一个方法,计算青蛙有多少种跳完台阶的方式。) 思路:根据此类问题的描述, 阅读全文
posted @ 2022-02-26 12:55 天空之城—我的理想国 阅读(374) 评论(0) 推荐(0) 编辑
摘要:二分查找 是什么? 在计算机科学中,二分搜索(英语:binary search),也称折半搜索(英语:half-interval search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查 阅读全文
posted @ 2022-02-24 13:42 天空之城—我的理想国 阅读(31) 评论(0) 推荐(0) 编辑
摘要:汉诺塔问题 是什么? 汉诺塔问题,是心理学实验研究常用的任务之一。该问题的主要材料包括三根高度相同的柱子和一些大小及颜色不同的圆盘,三根柱子分别为起始柱A、辅助柱B及目标柱C。相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下 阅读全文
posted @ 2022-02-23 22:07 天空之城—我的理想国 阅读(51) 评论(0) 推荐(0) 编辑
摘要:序列的排序 是什么? 将一串无序的序列进行有序地排列,使之成为有序序列。 解法? 方法1(选择排序): a=[] for i in input().split(' '): a.append(eval(i)) b=len(a) for j in range(0,len(a))://将第一个分别与后面几 阅读全文
posted @ 2022-02-22 22:58 天空之城—我的理想国 阅读(201) 评论(0) 推荐(0) 编辑
摘要:函数的递归 是什么? 在一个函数中,当函数内部含有调用自身函数的语句,则表示该函数采用递归方法,例如下所示: def f1(a,b): f1(c,d) ....... ....... return 0 解法? 思路:①找重复 ②找变化:这里可能需要构造变量。 ③找边界:是哪个变化的变量,并根据变量变 阅读全文
posted @ 2022-02-22 19:20 天空之城—我的理想国 阅读(40) 评论(0) 推荐(0) 编辑
摘要:构建一个函数 解法? def hanshumingcheng(a,b): m=a ............ ............ return 0//return x 阅读全文
posted @ 2022-02-22 17:18 天空之城—我的理想国 阅读(31) 评论(0) 推荐(0) 编辑
摘要:将整数的奇偶位互换 是什么? 将整数的奇偶位互换的意思是指将二进制数的奇偶位进行交换。例如,10101010变为01010101、10010010 变为01100001....即从左往右两两交换。 如整数9即二进制位1001,先将1001与1010 &(与)一下,得到1000,之后右移一位0100; 阅读全文
posted @ 2022-02-21 22:01 天空之城—我的理想国 阅读(105) 评论(0) 推荐(0) 编辑
摘要:判断一个数是否是2的整数次方 思路:如果一个数是2的整数次方,那么这个数必定服从某种规律。例如0001、0010、0100、1000、10000....这种二进制形式 解法? a=int(input()) if a&(a-1)==0: print('a是2的整数次方') else: print('a 阅读全文
posted @ 2022-02-21 21:03 天空之城—我的理想国 阅读(40) 评论(0) 推荐(0) 编辑
摘要:怎样判断一个数用二进制表示中1的个数 解法? 思路:先将一个数化成二进制表示,在用不同的方法来计算1的个数。 方法1:(简单除暴法) a=[] count=0 b=int(input()) while b>=0: k=b%2 b=b//2 a.append(k)//将数字转换成二进制,再将转换而成的 阅读全文
posted @ 2022-02-21 20:43 天空之城—我的理想国 阅读(159) 评论(0) 推荐(0) 编辑
摘要:找出落单的数 是什么? 一个数组里除了某一个数之外,其余的数都出现了两次,求出那个落单的数是为? 思路:利用异或运算中相同的数字或字母异或为0的特性。 解法? 阅读全文
posted @ 2022-02-20 23:01 天空之城—我的理想国 阅读(23) 评论(0) 推荐(0) 编辑
摘要:找出唯一成对的数 是什么?(特定类型) 1-1000这1000个数放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它均只出现一次。每个数组元素只能访问一次,设计一个算法,将它找出。 思路? 利用数的位运算中的异或运算(异或运算中相同为0、不同为1的)来进行确定.则可以将题目已给的1001 阅读全文
posted @ 2022-02-20 22:43 天空之城—我的理想国 阅读(45) 评论(0) 推荐(0) 编辑