前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >适合数据分析面试笔试入门的编程题

适合数据分析面试笔试入门的编程题

作者头像
开心鸭
发布2020-10-26 14:42:53
6510
发布2020-10-26 14:42:53
举报
文章被收录于专栏:开心鸭数据分析

CCF基础1、2编程题。比较适合准备数据分析的同学拿来练习的编程笔试题。

可以拿来Warm Up

第一题:

代码语言:javascript
复制
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
import java.util.Comparator;


public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(); //苹果个数
        int m = scanner.nextInt(); //疏果个数
        int t = 0;// 总数剩下的
        int k = 0; // 苹果树编号
        int p = 0; //疏果格式
        int tempk = 0; //临时k变量

        for (int i = 0; i < n; i++) {
            int simple = scanner.nextInt();
            t += simple;
            tempk++;
            int tempp = 0;

            for (int j = 0; j < m; j++) {
                int filter = scanner.nextInt();
                tempp -= filter;
                t += filter;
            }
            if (tempp > p) {
                p = tempp;
                k = tempk;
            }
        }
        System.out.println(t + " " + k + " " + p);
    }
}

这题只要顺着他的思路下来就可以bug free了。

第二题:

本题难度提升,需要计算发生掉落和连续三棵树发生苹果掉落的情况。

编程注意点:

1.在输入ai1的时候,因为是每颗果树的第一个输入,代表刚开始果树的苹果含量,所以可以写在第二个循环的前面和第一个循环的里面,所以第二个循环就要从1开始。

2.因为要统计所有的苹果含量,所以要在每次统计完一个果树之后保留一个临时变量最后加到t(所有苹果含量)当中。

3.最后计算连续三棵树的时候用用apple[k]&apple[p]&apple[q]这个表达式来判断,值得注意的是n、1、2 和n-1、n、1的情况。

代码如下

代码语言:javascript
复制
import java.util.*;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(); //苹果树棵树
        int t = 0; //总苹果数量
        int d = 0; //发生掉落苹果树数量
        int e = 0; //连续三棵掉落的苹果树
        int apple[] = new int[n];

        for (int i = 0; i < n; i++) {
            int m = scanner.nextInt();
            int temptotal = 0;
            int flag = 0;
            int firstrecord = scanner.nextInt();
            temptotal += firstrecord;

            for (int j = 1; j < m; j++) {
                int filter = scanner.nextInt();
                if (filter <= 0) {
                    temptotal += filter;
                } else {
                    if (filter < temptotal) {
                        flag = 1;
                        temptotal = filter;
                    }
                }
            }
            t += temptotal;
            if (flag == 1) {
                apple[i] = 1;
                d++;
            }
        }

        for (int k = 0; k < n; k++) {
            int p = k + 1;
            int q = k + 2;
            if (p >= n) {
                p -= n;
            }
            if (q >= n) {
                q -= n;
            }
            if ((apple[k] & apple[p] & apple[q]) == 1) {
                e++;
            }
        }

        System.out.println(t + " " + d + " " + e);

    }
}

最后希望大家能够保持编程的惯性,数据分析同学要多多在LeetCode刷SQL题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一题:
  • 第二题:
  • 最后希望大家能够保持编程的惯性,数据分析同学要多多在LeetCode刷SQL题。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档