CCF CSP认证JAVA(一)
文章目录
- 202109-1数组推导
- 202104-1灰度直方图
- 202109-2非零段划分
- HashMap和TreeMap
- 思路
- Map遍历
- 方法一:
- 方法二:
- 方法三:
- 方法四:
- 今日推歌
202109-1数组推导
//100分
import java.util.Scanner;
public class Main {public static void main(String [] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int []arr = new int[n];for(int i=0;i<arr.length;i++){arr[i] = scanner.nextInt();}int min = arr[0],max = arr[0];for(int i=1;i<arr.length;i++){if (arr[i]>arr[i-1]){min=min+arr[i];}max=max+arr[i];}System.out.println(max+"\n"+min);}
}
202104-1灰度直方图
//100分
public class Main {public static void main(String [] args){run();}public static void run(){//输入Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();int l = scanner.nextInt();int[] h = new int[l];int[] ele = new int[n*m];for(int i=0;i<n*m;i++){ele[i]=scanner.nextInt();}//计算for(int i=0;i<h.length;i++){int z=0;for(int j=0;j<ele.length;j++){if (i==ele[j]){z++;}}h[i]=z;}//输出for(int i=0;i<h.length;i++){if (i==h.length-1){System.out.print(h[i]);}else {System.out.print(h[i]+" ");}}}
}
System.out.print()输出不自动换行;System.out.println()会自动换行
栗子:每输出5个数据换一行
//其实就是加一个计数器 int a=1;for(int i=0;i<20;i++){System.out.print(i+" ");if(a%5==0){System.out.println();}a++;}
202109-2非零段划分
HashMap和TreeMap
- HashMap:基于哈希表实现,继承AbstractMap。适用于在Map中插入、删除和定位元素。
- Treemap:基于红黑树实现,继承自SortedMap。适用于按自然顺序或自定义顺序遍历键(key)。
- HashMap通常比TreeMap快一点(树和哈希表的数据结构使然),建议多使用HashMap,在需要排序的Map时候才用TreeMap。
思路
写一个计算某数组arr[i]中非零段的个数的函数notZero();
在Map中存储数组中每一种非零的值以及其对应在数组中的下标位置(list表示);
(此时为了方便后面的操作,在数组两端各加一个0,这样并不会影响结果)
从小到大遍历数组中每一种非零的值(由于不需要输出key值,此处使用values遍历),并将其在每个位置都置零,再计算当前数组的非零段个数。
非零段数的改变:改变某位置的元素为0,若它的前一个元素和后一个元素都非零,则非零段数在原基础上加一;若它的前一个元素和后一个元素都为零,则非零段数在原基础上减一;其余情况的非零段数不改变。
使用Math.max()找到最大非零段数,输出即可。
//100分
public class Main {public static void main(String [] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] arr = new int[n+2];arr[0]=arr[n+1]=0;Map<Integer, ArrayList<Integer>> map = new TreeMap<>();for(int i=1;i<= n;i++){arr[i]= scanner.nextInt();if (arr[i]!=0){if (map.containsKey(arr[i])){map.get(arr[i]).add(i);}else {ArrayList<Integer> list = new ArrayList<>();list.add(i);map.put(arr[i],list);}}}int count = notZero(arr);int max = count;Collection<ArrayList<Integer>> lists = map.values();for (ArrayList<Integer> list:lists){for (int i:list){arr[i]=0;if(arr[i-1] != 0 && arr[i+1] != 0){count++;}else if (arr[i-1] == 0 && arr[i+1] == 0){count--;}}max = Math.max(max,count);}System.out.println(max);}/*** 计算非零段个数* @param arr* @return*/public static int notZero(int[] arr){int nums = 0;for(int i=0;i<arr.length;i++){if (arr[i]!=0){nums++;for (int j=i+1;j<arr.length;j++){i=j;if(arr[j]!=0){continue;}else {break;}}}}return nums;}
}
Map遍历
方法一:
通过forEach接口
Integer value=null;
myMap.forEach((k,v)->
{value=v;
});
方法二:
通过keySet遍历(先得到key的值,再通过key值得到value值)
String key = null;
Integer value = null;
Iterator iter = myMap.keySet().iterator();
while (iter.hasNext()) {key = (String)iter.next();value = (Integer)myMap.get(key);
}
方法三:
通过entrySet遍历(通过Map.entrySet使用迭代器iterator遍历key和value)
Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)
String key = null;
Integer value = null;
Iterator iter = myMap.entrySet().iterator();
while(iter.hasNext()) {Map.Entry entry = (Map.Entry)iter.next();key = (String)entry.getKey();value = (Integer)entry.getValue();
}
方法四:
通过values遍历(通过Map.values()遍历所有的value,但不能遍历key)
//使用迭代器
Integer value = null;
Collection c = myMap.values();
Iterator iter= c.iterator();
while (iter.hasNext()) {value = (Integer)iter.next();
}
//不适用迭代器
Collection c = myMap.values();
for (String v : c) {System.out.println("value= " + v);}
今日推歌
----《我爱你不问归期》
是想念如你温柔过境
才发现原来花开都有声音
只要你在我生命途径
再不怕时光匆匆如旅
是幸福在我耳际低语
才忘了寒风不曾停下足迹
直到我走遍半生四季
才懂得风景都不及你
CCF CSP认证JAVA(一)相关推荐
- CCF CSP认证考试在线评测系统
关于CCF CSP认证考试在线评测系统 CCF CSP认证考试简介 CCF是中国计算机学会的简称.CCF计算机软件能力认证(简称CCF CSP认证考试)是CCF于2014年推出,是CCF计算机职业资格 ...
- CCF —— CSP认证
1.认证知识要求: 考试内容主要覆盖大学计算机专业所学习的程序设计.数据结构以及算法,以及相关的数学基础知识.包括但不限于: (1)程序设计基础 逻辑与数学运算,分支循环,过程调用(递归),字符串操作 ...
- 以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系
原文链接:以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系 发布单位:学会 发布时间:2017-01-20 16:16 作者:陆建峰 余立功 摘要:为提升计算机专业类学生 ...
- 参加CCF CSP认证者须知
发布单位:中国计算机学会 发布时间:2014-11-11 15:06 凡有意参加CCF CSP认证者,请在cspro.org网站上注册.报名.缴费.打印准考证,参加认证后可以在网站查询 ...
- 计算机考csp200分啥水平,计算机与信息工程学院成功举办第20次CCF CSP认证考试
2020年9月13日,计算机与信息工程学院在计算机大楼201举办第二十次CCF CSP认证考试.这是计算机与信息工程学院2019年12月与中国计算机学会签署协议.河南大学正式成为CSP认证考点以来,举 ...
- 北航ccf计算机软件能证排名前18%,CCF成功举办第十一次CCF CSP认证
第十一次CCF CSP计算机软件能力认证(CSP)于2017年9月17日在全国66所院校举办,这是2017年度CCF举办的第二次认证,来自全国200多个单位的6591人参加了本次认证.通过对本次CSP ...
- python认证考试_Python入门习题(39)——CCF CSP认证考试真题:公共钥匙盒
CCF CSP认证考试真题:共钥匙盒 问题描述 试题编号:201709-2 试题名称:公共钥匙盒 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个学校的老师共用N个教室,按照规定,所有的 ...
- CCF CSP认证菜鸟刷题日志
CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...
- ccf csp认证考试的历年题集汇总
1.CCF历年试题解答_按题序 2.CCF认证考试题解目录 3.CCF CSP入坑指南 4.ccf 认证历年试题解答 5.CCF认证历年真题 _无题意 6.CCF-CSP认证备考要点 6.CCF认证历 ...
- 第十四次CCF CSP认证心得
个人博客链接:https://www.lhbat.com 在这里强烈的鄙视了一下自己~~~~简直有些坐井观天,写的啥也不是,但想一想,或许还是能给刚入门的同学(像我一样的小小白)或还没有参加过CSP认 ...
最新文章
- 721合约 erc eth_深入了解「智能合约」及主流平台「智能合约」的查询方法
- linux shell的配置文件信息
- html 视频兼容苹果,video苹果兼容flash播放
- php面向对象面试题
- Confluence 6 配置服务器基础地址示例
- ps、top 、free查看用户资源信息
- CF1479C Continuous City
- iOS 原生导航栏 修改导航栏文字颜色 大小
- SQL检索MongoDB的轻量级解决方案
- 怎样区分现代艺术和幼儿涂鸦
- Python::OS 模块简介
- 小球运动及碰撞3D仿真模型
- [WARNING]: Could not match supplied host pattern, ignoring: servers
- oracle访问emp表,通过deptno查询Emp表中雇员信息(oracle)
- linux中文输入配置sougou输入法
- QuantumultX 初学者傻瓜教程
- CSDN Markdown 公式编号
- 百思不得姐框架(二)
- Linux中阶—域名解析服务DNS(十)
- 7-1 换硬币(20 分)
热门文章
- MySQL高级学习(一) (吾爱破解)
- 博饼游戏c语言,2015中秋博饼游戏规则
- dsp 28377 +RX-8025T 实现RTC功能
- 我的第一个开源项目Zplayer(模仿酷狗)
- mysql 事务 库存_库存事务处理临时表
- 哈工大计算机系统大作业 程序人生-Hello’s P2P
- 常见B端产品经理面试问题及答案(一)
- HTML5七夕情人节表白网页制作【一起跨年表白代码】HTML+CSS+JavaScript
- (动态示例)制作chm离线手册文件-w3school为例
- 百度AI开放平台- API实战调用