
算法
文章平均质量分 78
一碗啥都有的麻辣烫
本人在csdn上获得了许多大神的帮助。现在也想把自己在学习中遇到的问题和解决它们的方法记录下来,为csdn这个社区做一些微薄的贡献。
展开
-
用递归解决约瑟夫环问题
问题描述编号为1-N的N个士兵围坐在一起。从编号为1的士兵开始报数(1,2,3,等这样报)。数到m的士兵被枪毙出列。剩下的士兵再从1开始报。以此循环直到只剩1个士兵为止。求这个士兵的编号。分析用链表解决的方法在此不加赘述。重点叙述递归的方法。假设目前一共还有n个士兵:每个黑点的数字代表在枪毙士兵之后士兵的编号。红色的叉所处的位置为刚刚被枪毙的士兵之前所处的位置。...原创 2021-02-07 09:40:08 · 2249 阅读 · 2 评论 -
求两个有序数组的第K小数
题目给定两个有序数组arr1和arr2,已知两个数组的长度分别为m1和m2,求两个数组中的第K小数。要求时间复杂度O(log(m1+ m2))。(题目和解题思路均来自《帅得玩编程》)举例eg1. arr1 = [1, 2, 3], arr2 = [3, 4, 5, 6], K = 4.第K小数为3eg2. arr1 = [0, 1, 2], arr2 = [3, 4, 5, 7, 8], K = 3.第K小数为2分析该题其实是在两个长度相同的有序数组中找上中位数的扩展。扩展在以下2个方面:原创 2021-01-07 12:25:29 · 622 阅读 · 0 评论 -
在两个⻓度相等的排序数组中找到上中位数
问题描述给定2个有序数组arr1和arr2,已知2个数组的长度都是N,求2个数组中所有数的上中位数up_mid_val。要求时间复杂度为O(logN),空间复杂度O(1)举例arr1 = [1, 2, 3, 4], arr2 = [3, 4, 5, 6].上中位数up_mid_val:3arr1 = [0, 1, 2], arr2 = [3, 4, 5]上中位数up_mid_val:2解答用递归解决。递归的核心思想是在保证子问题性质相同的情况下不断缩小问题的规模。那么现在先分析如何从原问题原创 2020-12-20 11:19:40 · 276 阅读 · 1 评论