小游戏运行如何与企业数字化转型息息相关
663
2022-11-29
荷兰国旗问题
问题描述 给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N) 解决思路
1 当前数<目标 当前数和 <区的下一个交换 <区 向右扩 当前数跳下一个2 当前数=目标 当前数直接跳下一个3 当前数>目标 当前数和 >区前一个交换 <区左扩 当前数不变
方法如下
/** * * 1 当前数<目标 当前数和 <区的下一个交换 <区 向右扩 当前数跳下一个 * 2 当前数=目标 当前数直接跳下一个 * 3 当前数>目标 当前数和 >区前一个交换 <区左扩 当前数不变 * * * */ //荷兰国旗 问题 //给定一个数组arr,和一个数num,请把小于num的数放在数组的左边, // 等于num的数放在数组的中间, //大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N) //返回值是一个数组 // arr[L...R] 玩荷兰国旗问题的划分,以arr[R]做划分值 //
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~