活跃农民-感谢提供高质量信息和讨论

- 积分
- 582
- 学分
- 个
- 大米
- 升
- 人参
- 枚
- 水井
- 尺
- 小麦
- 颗
- 萝卜
- 根
- 小米
- 粒
- UID
- 174898
- 注册时间
- 2015-7-16
- 最后登录
- 1970-1-1
- 在线时间
- 小时
- 好友
- 收听
- 听众
- 日志
- 相册
- 帖子
- 主题
- 分享
- 精华
|
嗯,用一个数组存 k pointers,跑了一个简单的test case. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
- class Solution {
- public static int[] sortk(int arr[], int k) {
- int[] p = new int[k]; // 存放k个指针
- int[] ret = new int[arr.length];
- for(int i=0;i<arr.length;i++) {. 1point 3acres 璁哄潧
- p[f(arr[i])]++;
- }
- for(int i=1;i<k;i++) { .1point3acres缃
- p[i] += p[i-1];
- }
- for(int i=0;i<arr.length;i++) {
- int idx = p[f(arr[i])]-1;
- p[f(arr[i])]++;
- ret[idx] = arr[i];
- }
- return ret;
- }
- 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
- public static int f(int n) {. 1point 3acres 璁哄潧
- return n-1;
- }
-
-
- public static void main(String[] args) {
- int[] arr = new int[]{3,2,1,4};. 1point3acres.com/bbs
- int[] ret = sortk(arr,4);. 1point 3acres 璁哄潧
- for(int i=0;i<ret.length;i++) {
- System.out.print(ret[i] + " ");
- }
-
- }
- }
复制代码
补充内容 (2016-11-30 03:38):
第13 行应该是--, 从后往前fill |
|