算法
文章平均质量分 50
CranberryPancake
这个作者很懒,什么都没留下…
展开
-
反转链表
剑指offer 24 双向链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 来源:力扣(LeetCode) 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 1. 双指针Ⅰ 每两位交换位置。 pre指针用来存储下一个节点。 cur | | pre null → 1 → 2 → 3 → 4原创 2021-03-18 11:44:13 · 114 阅读 · 0 评论 -
常用算法
常用算法一、洗牌算法Fisher-Yates ShuffleKnuth-Durstenfeld ShuffleInside-Out蓄水池算法二、 台阶问题 一、洗牌算法 重新打乱一个数组内元素的数据,要保证1/n随机性。 Fisher-Yates Shuffle 1. 在0~arr.size间取一个随机数p 2. 把arr[p]从数组中移除 3. 重复步骤1、2 Knuth-Durstenfeld Shuffle 将每次随机数得到的元素移到数组尾部。 Inside-Out 两个数组。 For循环i递增原创 2021-03-17 15:41:58 · 125 阅读 · 0 评论