首页 > 其他分享 >LeetCode 1387. 按幂值对整数进行排序

LeetCode 1387. 按幂值对整数进行排序

时间:2022-09-05 01:45:55浏览次数:86  
标签:Arr 排序 lo high 幂值 indexOfPivot 1387 LeetCode

LeetCode 1387. 按幂值对整数进行排序

剛從南湖群峰下山,原本受了現在好像又胖回去了(哭

[

按幂值排序整数 - LeetCode

整数 x 的幂定义为使用以下步骤将 x 转换为 1 所需的步骤数:对于…

leetcode.com

](https://leetcode.com/problems/sort-integers-by-the-power-value/)

 常量步骤 = (x) => {  
 让结果 = 0  
 而(x!== 1){  
 x = x%2 ? 3*x + 1 : x/2  
 结果++  
 }  
 返回结果  
 } 常量比较器 = (a, b) => {  
 返回 a[1] === b[1] ? a[0] - b[0] : a[1] - b[1]  
 } const partition = (low, high, Arr) => {  
 let pivot = Arr[high] // 使枢轴成为最后一个元素  
 让慢=低  
 对于(让快=低;快<高;快++){  
 如果(比较器(Arr [fast],pivot)< 0){  
 [Arr[慢],Arr[快]] = [Arr[快],Arr[慢]]  
 慢++  
 }  
 }  
 [Arr[慢],Arr[高]] = [Arr[高],Arr[慢]]  
 返回缓慢  
 } 常量快速选择 = (Arr,k) => {  
 让低 = 0  
 让高 = Arr.length -1  
 while (low < high) { // 使用快速排序  
 让 indexOfPivot = 分区(低,高,Arr)  
 如果 (indexOfPivot < k) 低 = indexOfPivot + 1  
 else if (indexOfPivot > k) high = indexOfPivot - 1  
 else break //case k  
 }  
 返回 Arr[k]  
 } const getKth = (lo, hi, k) => {  
 if (lo === hi) 返回 lo  
 让 powerArray = []  
 for (让 i = lo; i < hi+1; i++) {  
 poweredArray.push([i, steps(i)])  
 }  
 返回 quickSelect(poweredArray, k-1)[0]  
 };

参考: Comparison Sort: Quick Sort(快速排序法)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/14370/32190501

标签:Arr,排序,lo,high,幂值,indexOfPivot,1387,LeetCode
From: https://www.cnblogs.com/amboke/p/16656701.html

相关文章