腾讯2018年春招技术类编程题_翻转数列_纸牌游戏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_34524528/article/details/88393754

翻转数列1

简单模拟(超时)

import java.util.*;

public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args){
        long n,m;
        n = sc.nextInt();
        m = sc.nextInt();
        long sum =0;
        long k = 1;
        long symbol = 1;
        if(m==1)
        for(long i=1;i<=n;i++,k++){
            if(k==m){symbol*=-1;k=0;}            
            sum+= (i * symbol);
            //System.out.println(i * symbol);
        }
        else
            for(long i=1;i<=n;i++){
            if(i%m==1){symbol*=-1;}            
            sum+= (i * symbol);
            //System.out.println(i * symbol);
        }
        System.out.println(sum);
    }
}

找前 n 项和公式

没一个【负,正】为一组,以哦那个有 n/2m 组。开头是负数。
对于其中任意一组有 -x,-(x+1),-(x+2)…-(x+m-1), (x+m),(x+m+1),…,(x+2m-1);
本组各项相加:
原式 = -x+ -(x+1) + … + -(x+m-1) + x+m + x+m+1 + … + x+2m+1
=-x+(x+m) + -(x+1)+(x+1+m) + -(x+2)+(x+2+m) + … + -(x+m-1)+(x+2m-1)
=-m+m+m+…+m ······ 即m个m相加
=(m*m)
=m2
一共有n/2m组,故前n项和
S = m2n/2m = mn/2.

import java.util.*;

public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args){
        long n,m;
        n=sc.nextLong();
        m=sc.nextLong();
        System.out.println(m*n/2);
    }
}

纸牌游戏2

import java.util.*;

public class Main{
    static Scanner sc = new Scanner(System.in);
    public static void main(String []args){
        int n = sc.nextInt();
        List<Integer> list = new ArrayList<>();
        for(int i=0;i<n;i++){
            list.add(sc.nextInt());
        }
        Collections.sort(list, Collections.reverseOrder());
        Integer difference = 0;
        Iterator<Integer> it = list.iterator();
        while(it.hasNext()){            
            difference += it.next();
            if(it.hasNext()) difference -= it.next();
        }
        
        System.out.println(difference);
    }
}

  1. 1 ↩︎

  2. 2 ↩︎

猜你喜欢

转载自blog.csdn.net/sinat_34524528/article/details/88393754