amazon 汇总 算法

7. write a function cn random an array.

public class xiaodan_random {
    Random rand = new Random();

    public void swap(int[] array, int i, int j){
        int buf = array[i];
        array[i] = array[j];
        array[j] = buf;
    }

    public void random(int[] array){
        for(int i=0; i<array.length; i++){
            int ran = rand.nextInt(array.length);
           // System.out.println("this random number == "+ ran);
            swap(array,i,ran);
        }
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] array = {1,2,3,4,5};
        xiaodan_random application = new xiaodan_random();
        while(true){
        application.random(array);

        System.out.println("result :");
        for(int i =0; i< array.length; i++)
            System.out.print(array[i]+ " ");
            System.out.println();
    }
    }

}

13.  know a range. liner run time sort a array.

(radix sort)

Problem Statement
Given an integer array of length N, containing values in the range 1,2,3…N^2. Sort the array in O(N) time.

//http://www.geeksforgeeks.org/sort-n-numbers-range-0-n2-1-linear-time/

public class RadixSort {

    public void radixSort(int arr[], int maxDigits){
        int exp = 1;//10^0;
        for(int i =0; i < maxDigits; i++){
            ArrayList bucketList[] = new ArrayList[10];
            for(int k=0; k < 10; k++){
                bucketList[k] = new ArrayList();
            }
            for(int j =0; j < arr.length; j++){
                int number = (arr[j]/exp)%10;
                bucketList[number].add(arr[j]);
            }
            exp *= 10;
            int index =0;
            for(int k=0; k < 10; k++){
                for(int num: bucketList[k]){
                    arr[index] = num;
                    index++;
                }
            }
        }

        System.out.println("Sorted numbers");
        for(int i =0; i < arr.length; i++){
            System.out.print(arr[i] +", ");
        }
    }

    public static void main(String[] argv){
        int n = 5;
        int arr[] = {1,4,2,3,5,10,8};
        new RadixSort().radixSort(arr, 2);
    }
}

10

设计一个系访问这个系可以添加item, 可以返回10分内被访

次数最多的排序 (LFU)

import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.PriorityQueue;
import java.util.Scanner;

// fixed size priority queue;

public class LFU {

    private final int MAX = 3;

    PriorityQueue<Node> queue = new PriorityQueue<Node>();
    HashMap<String,Node> map = new  HashMap<String,Node>();

    class Node{
        String name;
        public int count;
        public Node(String name){
            this.name = name;
            count = 0;
        }
    }

    public LFU(){
        queue = new PriorityQueue<Node>(MAX,new myCompartor());
        map = new  HashMap<String,Node>();
    }

    public synchronized void  put(String str){
        if(!map.containsKey(str)){
            Node node = new Node(str);
            node.count = 1;
            map.put(str, node);
            queue_add(node);
        }else{
            //map contains the node, delete from heap frist and add again
            Node node = map.get(str);
            queue.remove(node);
            node.count += 1;
            queue_add(node);
        }
    }

    public void queue_add(Node node){
        if(queue.size()>=MAX){
            if(queue.peek().count < node.count){
                queue.poll();
                queue.add(node);
            }
        }else{
            queue.add(node);
        }
    }

    class myCompartor implements Comparator<Node>{

        @Override
        public int compare(Node o1, Node o2) {
            // TODO Auto-generated method stub
            return o1.count - o2.count;
        }

    }

    public void print(){
        Iterator<Node> itr = queue.iterator();
        while(itr.hasNext()){
            Node node = itr.next();
            System.out.println(node.name + " " + node.count);
        }
        System.out.println();
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        LFU lfu = new LFU();
        while(true){
            Scanner san = new Scanner(System.in);
            String str = san.next();
            lfu.put(str);
            lfu.print();
        }

    }

}

amazon 汇总 算法

时间: 2024-08-11 09:46:46

amazon 汇总 算法的相关文章

amazon 汇总

1. what is hash table? how to implement in C? how to deal with conflicts? (linkedlist, linear probing, double hashing...etc)什么是 hashtable, hash function, key为string怎么办.Describe how hash table works? In computing, a hash table (also hash map) is a dat

ActiveReports 9实战教程(3): 图文并茂的报表形式

基于上面2节内容,我们搭建了AR9的开发环境,配置好了数据源.在本节,我们以官方提供的3个中文图文并茂的报表来展示AR9的功能,并通过实战的方式一一分享. 以往做报表相关的工作时,最害怕的是报表的UI设计工作,当遇到一个布局非常复杂的报表,往往会花上两.三时间才能完成报表的UI设计工作.造成这一问题的原因除了报表本身比较复杂之外,其中一个主要原因就是报表设计器没有提供足够多的功能来辅助报表的UI设计工作.       ActiveReports 是一个非常容易使用控件,可有一些功能却经常被遗忘-

视频质量评测标准——VMAF

阿里云视频云直播转码每天都会处理大量的不同场景.不同编码格式的直播流.为了保证高画质,团队借助VMAF标准来对每路转码的效果做质量评估,然后进行反馈.调优.迭代.这么做的原因在于,像动作片.纪录片.动画片.体育赛事这些场景,影响画质的因素各不相同,基于VMAF的视频质量反馈机制,可以在保证画质的前提下,对不同的场景做针对性优化,达到画质最优.成本最低的效果.本文由阿里云视频云高级开发工程师杨洋撰写,旨在分享VMAF的核心模块与技术实践. 背景图像质量的衡量是个老问题,对此人们提出过很多简单可行的

若干排序算法简单汇总(一)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/35819279 作者:小马 从题目看,首先不是全部是若干.排序算法很多,我个人的能力也有限,不可能都讲到.另外,是简单汇总,是希望能用最简单的代码,最简短的语言说明问题,不搞太多理论分析. 就像前面说的,排序算法有很多,而且不存在哪一种最不好,哪一种最好这样的说法.根据用途不同选择最适合的就行了.不过仅从时间复杂度来看,基本上有两种,一种是O(n^2), 一种是O(nlogn).

最短路算法汇总

校赛完了,这次校赛,做的很差,一个算法题没有,2个水题,1个贪心,概率DP,DP,数论题.DP还没开始研究,数论根本不会,数学太差了,省赛时卡数论,校赛依然卡数论,我擦,还是得继续学习啊! 一把锈迹斑斑的剑,只有不断的磨砺,才能展露锋芒! 以下为最短路总结: 最短路问题可分为: 一.单源最短路径算法,解决方案:Bellman-Ford算法,Dijkstra算法,SPFA 二.每对顶点间的最短路径算法:Floyd: (1).Dijkstra算法: (经典的算法,可以说是最短路问题的首选事例算法,但

排序算法汇总总结_Java实现

一.插入排序 直接插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间. 代码实现: public class Inseretion_Sort {     public static void main(Stri

若干排序算法简单汇总(二)

转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/36706131 作者:小马 一希尔排序 上一篇讲到的直接插入排序,时间复杂度O(n^2). 请在脑海里想一下它的过程.如果一个序列本来就是有序的,对它排序的时间复杂度是O(n).所以当序列基本有序时,插入排序排序的效率大大提高,因为减少了移动的动作. 另外,直接插入排序还有一个特点,当n比较小时,它的效率比较高. 希尔排序正是基于上面两个思想做的一种改进算法.它先将整个序列分成若干

机器学习常见算法分类汇总

机器学习常见算法分类汇总 机器学习无疑是当前数据分析领域的一个热点内容.很多人在平时的工作中都或多或少会用到机器学习的算法.这里 IT 经理网为您总结一下常见的机器学习算法,以供您在工作和学习中参考. 机器学习的算法很多.很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的.这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的类似性. 学习方式 根据数据类型的不同,对一个问题的建模有不同的方式.在机器学习或者人工智能领域,人们首先会考虑算法的学习

排序算法汇总(C/C++实现)

前言:     本人自接触算法近2年以来,在不断学习中越多地发觉各种算法中的美妙.之所以在这方面过多的投入,主要还是基于自身对高级程序设计的热爱,对数学的沉迷.回想一下,先后也曾参加过ACM大大小小的校级赛.区域赛.没什么惊天动地的奖项,最好的名次也就省三等奖.现在作为第一篇算法总结就拿常见的排序算法以我个人的理解,以及代码实现跟大家简单分享一下(排序算法如果一一罗列的话,不下十种.曾在图书馆的旧书架上看过一本近900页的书,内容就是专门介绍排序算法). 选择排序(select) 选择排序比较容