深圳优秀网站设计,外贸通道支持asp的网站吗,网站开发实施计划,网站开发书百度云思路
首先是这种计算权重的方式很有可能出现重复#xff0c;所以需要记忆化搜索记忆化搜索#xff1a;先查表再计算#xff0c;先存表再返回。将整数 x 和计算的权重分别存储数组的0和1的位置重写compare将数组排序按规则排序返回结果
代码
class Solution {private Hash…思路
首先是这种计算权重的方式很有可能出现重复所以需要记忆化搜索记忆化搜索先查表再计算先存表再返回。将整数 x 和计算的权重分别存储数组的0和1的位置重写compare将数组排序按规则排序返回结果
代码
class Solution {private HashMapInteger, Integer me new HashMap();public int getKth(int lo, int hi, int k) {int[][] arr new int[hi - lo 1][2];for (int i lo; i hi; i) {int tmp dfs(i);me.put(i, tmp);arr[i - lo][0] i;arr[i - lo][1] tmp;}Arrays.sort(arr, new Comparatorint[]() {Overridepublic int compare(int[] o1, int[] o2) {return o1[1] o2[1] ? o1[0] - o2[0] : o1[1] - o2[1];}});return arr[k-1][0];}int dfs(int x) {int res 0;if(me.get(x) ! null){res me.get(x);return res;}else if (x 1) {res 0;} else if (x % 2 1) {res 1 dfs(x * 3 1);} else {res 1 dfs(x / 2);}me.put(x, res);return res;}
}