CCF——相邻数对201409-1

问题描述

  给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。

输入格式

  输入的第一行包含一个整数n,表示给定整数的个数。
  第二行包含所给定的n个整数。

输出格式

  输出一个整数,表示值正好相差1的数对的个数。

样例输入

6
10 2 6 3 7 8

样例输出

3

样例说明

  值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。

评测用例规模与约定

  1<=n<=1000,给定的整数为不超过10000的非负整数。

 1 package com.ezreal;
 2
 3 import java.util.Scanner;
 4
 5 public class Main {
 6
 7     /**
 8      * @param args
 9      */
10     public static void main(String[] args) {
11         // TODO Auto-generated method stub
12         new Main().run();
13     }
14     public void run(){
15             Scanner sc=new Scanner(System.in);
16             int N=sc.nextInt();
17             int[] a=new int[1000];
18             int result=0;
19             for(int i=0;i<N;i++){
20                 a[i]=sc.nextInt();
21             }
22             for(int i=0;i<N;i++){
23                 for(int j=i+1;j<N;j++){
24                     if(Math.abs(a[i]-a[j])==1){
25                         result+=1;
26                     }
27                 }
28             }
29             System.out.println(result);
30     }
31
32 }
时间: 2024-10-08 11:15:45

CCF——相邻数对201409-1的相关文章

CCF - 201409-1 - 相邻数对

问题描述 试题编号: 201409-1 试题名称: 相邻数对 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一行包含一个整数n,表示给定整数的个数. 第二行包含所给定的n个整数. 输出格式 输出一个整数,表示值正好相差1的数对的个数. 样例输入 610 2 6 3 7 8 样例输出 3 样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8). 评测用例规模与约定 1

Leetcode:Candy 每个数都比相邻数大

原题戳我 There are N children standing in a line. Each child is assigned a rating value. You are giving candies to these children subjected to the following requirements: Each child must have at least one candy. Children with a higher rating get more can

[算法]数组排序之后相邻数的最大差值

题目: 给定一个整形数组arr,返回排序后的相邻两数的最大差值. 时间复杂度为O(N). 解答: 如果用排序法实现,其时间复杂度为O(NlogN),而如果利用桶排序的思想(不是桶排序),可以做到O(N),额外空间复杂度为O(N).遍历arr找到最大值max和最小值min.如果arr的长度为N,准备N+1个桶,把max单独放在第N+1个桶中,[min,max)范围上的数放在1~N号桶里,对于1~N号桶中的每一个桶来说,负责的区间为(max-min)/N.如果一个数为num,它应该分配进(num-m

CCF题目:相邻数对

问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一行包含一个整数n,表示给定整数的个数. 第二行包含所给定的n个整数. 输出格式 输出一个整数,表示值正好相差1的数对的个数. 样例输入 6 10 2 6 3 7 8 样例输出 3 样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8). 评测用例规模与约定 1<=n<=1000,给定的整数为不超过10000的非负整数. -----------------------------

CCF真题之相邻数对

201409-1 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一行包含一个整数n,表示给定整数的个数. 第二行包含所给定的n个整数. 输出格式 输出一个整数,表示值正好相差1的数对的个数. 样例输入 6 10 2 6 3 7 8 样例输出 3 样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8). 评测用例规模与约定 1<=n<=1000,给定的整数为不超过10000的非负整数. 源代码: #include <io

CSU 1350 To Add Which? 给序列增加最少的值使得相邻数差&lt;=D 优先队列+贪心

题目链接:点击打开链接 题意:给定n长的序列,常数D 每次操作可以给某个数增加1. 问最少需要操作几次使得相邻的2个数的差值<=D 思路: 每次弹出队列里最大的数,然后更新就好了 import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Ite

[程序员代码面试指南]数组和矩阵问题-数组排序后相邻数的最大差值(桶排序思想)

题意 给定一个整形数组arr,返回排序后的相邻两数的最大差值. 题解 借助桶排序思想. 首先遍历一遍获得最大值max,最小值min. 设数组长度为len,则有len+1个桶,桶负责的区间大小是(max-min)/len,数字num放入的桶id是(num-min)/((max-min)/len)即(num-min)*len/(max-min). 由于min在桶0,max在桶len+1,所以一定隔了至少一个空桶.所以"排序后的相邻两数的最大差值"一定是相邻的两个非空桶的(区间存较大数的桶)

CCF_201409-1_相邻数对

水. #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int main() { int n,a[1005]; cin >> n; for(int i = 1;i <= n;i++) cin >> a[i]; sort(a+1,a+n+1); int num = 0; for(int i = 1;i < n;i++) { if(a[

hdu 5074 相邻数和最大dp

http://acm.hdu.edu.cn/showproblem.php?pid=5074 给定一个序列 有些位数未知,给你所有两个数连续所得到的能量,问你怎么安排数字使得总能量最大 二维dp,dp[i][j]表示第i位放音符j 分类讨论即可 #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <string> #include &l