其他分享
首页 > 其他分享> > 5397.最简分数

5397.最简分数

作者:互联网

image-20200517204426591

Map记录已遍历过的值

思路

代码

   /**
     *40ms
     */
    public List<String> simplifiedFractions(int n) {
        List<String> list=new ArrayList<>();
        Map<Double,Integer> map=new HashMap<>();
        if(n==1) return list;
        for(int i=2;i<=n;i++){
            for(int j=1;j<i;j++){
                if(j!=1&&map.containsKey((j/(i*1.0)))){
                    continue;
                }
                map.put(j/(i*1.0), 1);
                list.add(j+"/"+i);
            }
        }
        return list;
    }

求最大公约数(辗转相除法)

思路

代码

       /**
         * 29ms
         * 辗转相除法
         */
        public List<String> simplifiedFractions2(int n){
            List<String> list=new ArrayList<>();
            if(n==1){
                return list;
            }
            for(int i=2;i<=n;i++){
                for(int j=1;j<i;j++){
                    if(j==1||gcd(i,j )==1){
                        list.add(j+"/"+i);
                    }
                }
            }
        return list;
    }

    //辗转相除计算最大公约数
    public int gcd(int a,int b){
        return b==0?a:gcd(b,a%b);
    }

标签:简分数,5397,int,List,list,new,分母
来源: https://www.cnblogs.com/yh-simon/p/12906866.html