
算法
文章平均质量分 58
lidashent
这个作者很懒,什么都没留下…
展开
-
数据结构和算法——汉诺塔问题
先讲个故事,传说古代印度有三根黄金柱,64个石盘,需要将石盘从第一根移动到第三根上,规定每次只能移动一片,并且小盘在移动过程中必须在大盘上。当石盘移动完毕时,世界就会毁灭。原创 2025-03-31 17:50:53 · 535 阅读 · 0 评论 -
每天算法-6-堆栈
文章目录问题解决思路问题使用临时堆栈对堆栈进行排序输入:[34,3,31,98,92,23]输出:[3,23,31,34,92,98]解决思路1,从A栈中取出一个元素a,如果B栈为空直接入栈(没有元素可以比较)2.如果B栈不为空,则查看B栈顶元素b是否大于a,如果大于则将栈顶元素b压入A栈(B的元素来自A,此时只不过是原数奉还,等待下一次取出,此时A的栈顶元素已经是b,a从A栈弹出了)(这代表a被压入B栈的时候,B前面已经没有比a大的值,如此循环进行排序)然后将a压入B栈peek和原创 2021-05-10 12:32:31 · 112 阅读 · 0 评论 -
每日一算法-5-堆栈
文章目录问题解决什么是后缀表达式?思路问题使用栈计算后缀表达式解决什么是后缀表达式?比如计算 (a+b)*c-(a+b)/e,人类觉得这样很好,这种叫做中缀表达式,算法符号在运算的数字中间,很清晰但是对于计算机并不是最好的计算机需要考虑括号的范围,加减的顺序等等,因此有另外一种适合计算机计算的写法让计算机只考虑计算问题,而不担心计算的顺序性后缀表达式就是把运算符号写在要运算的两个数字的后面,从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做原创 2021-05-08 09:52:30 · 187 阅读 · 1 评论 -
每日一算法-4-数组
文章目录问题解决思路问题在O(n)时间和O(1)额外空间中重新排列正数和负数数组包含随机数的正数和负数。重新排列数组元素,以便交替放置正数和负数。正数和负数的数量不必相等。如果有更多正数,它们将出现在数组的末尾。如果还有更多的负数,它们也会出现在数组的末尾。如果输入数组为[-1、2,-3、4、5、6,-7、8、9],则输出应为[9,-7、8,-3、5,- 1,2,4,6]解决思路1,想象一个坐标系,左边都是负数,右边都是正数,有一个虚拟的坐标0第一步先把所有负数正数按照坐标系排布,大小不考原创 2021-05-06 16:46:47 · 149 阅读 · 1 评论 -
每日一算法-3-数组
文章目录问题解决思路问题合并两个排序的数组输入:arr1 [] = {1,3,4,5},arr2 [] = {2,4,6,8}输出:arr3 [] = {1,2,3,4,4,5,6 8}解决思路1.两个数组A,B,创建第三个数组C,C的长度为AB之和先将A的值逐个赋给C两次遍历遍历B取出B的元素遍历C中的元素,遍历次数等于A.length+Bi,因为随着B元素的插入,C的元素在不断增长可以设想:Bi元素假如找到C中一个合适的位置想要插入,就需要此元素后的所有元素向后移动一个位置原创 2021-05-05 16:58:17 · 191 阅读 · 1 评论 -
每日一算法-2-数组
文章目录问题思路问题在给定的整数数组中查找第一个非重复元素。输入:-1 2-1 3 2输出:3输入:9 4 9 6 7 4输出:6思路1.两个循环:第一个循环不断从数组中取出元素A第二个循环比较和A坐标不同的元素,遍历数组后如果发现到了数组末尾还找不到相同的,就可以输出2.使用哈希表两个遍历第一个遍历,将数组元素加入哈希表作为key,value默认为1,检测到相同的,将value+1第二个遍历,遍历哈希表,取出value为1的key如果使用return关键字,可以直接退出方法,当原创 2021-05-03 09:39:59 · 125 阅读 · 0 评论