设为首页 加入收藏

TOP

2023年七月六日集训(一)
2023-07-23 13:32:00 】 浏览:39
Tags:2023年 七月 六日

最重点,哈希表

`import java.util.Scanner;
import java.util.;
public class Cf1300c{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Hashtable<String, Integer> hash_t = new Hashtable<>();
int n = sc.nextInt();
sc.nextLine();
/

这段代码是一个简单的哈希表应用,实现了一个功能:检查输入的字符串是否在哈希表中已经存在,如果存在,则输出该字符串的出现次数+1,如果不存在,则输出"OK"并将该字符串添加到哈希表中。

代码解释如下:

  1. for (int i = 0; i < n; i++):循环n次,用来处理n个输入的字符串。
  2. String a = sc.nextLine();:从输入中读取一行字符串,并将其赋值给变量a。
  3. if (hash_t.containsKey(a)):判断哈希表hash_t中是否包含字符串a,即判断a是否已经出现过。
  4. 如果a已经出现过:
    a. int b = hash_t.get(a);:从哈希表中获取字符串a对应的值,即出现次数是哪一次。
    b. b++;:将出现次数+1。
    c. hash_t.put(a, b);:将更新后的出现次数存回哈希表中。
    d. System.out.println(a + b);:输出字符串a和出现次数。
  5. 如果a没有出现过:
    a. System.out.println("OK");:输出"OK"。
    b. hash_t.put(a, 0);:将字符串a添加到哈希表中,并将出现次数初始化为0。

通过使用哈希表,可以高效地判断字符串是否已经出现,并记录每个字符串的出现次数。这在统计词频、记录重复项等场景中非常有用。

     */
    for( int i=0; i<n; i++)
    {
        String a = sc.nextLine();
        if( hash_t.containsKey(a)) {
            int b = hash_t.get(a);
            b++;
            hash_t.put(a,b);
            System.out.println( a+b);
        }
        else{
            System.out.println( "OK");
            hash_t.put( a, 0);
        }
    }
}

}
`
Math 常用函数


关于内部类,在逆序的时候,采用这种形式
Integer[] integer={123,3,4,1,123,4,1,21,2,1,2,4}; Arrays.sort(integer, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2-o1; } });
缩写形式,称之为lamb表达式
System.out.println("--------------lambda-------------------"); Arrays.sort(integer,(Integer o1, Integer o2)->{ return o2-o1; } ); System.out.println("-----------------lambal简化-------------"); Arrays.sort(integer,(o1,o2)->o2-o1); System.out.println(Arrays.toString(integer));

file:///C:/Users/chen/Documents/Tencent%20Files/lamda.html
关于简单集合


`/* public static string tostring(数组)
把数组拼接成一个字符串
public static int binarySearch(数组,查找的元素)
二分查找法查找元素(向上对齐)
public static int[]copyof(原数组,新数组长度)
拷贝数组
public static int[]copyOfRange(原数组,起始索引,结束索引)
拷贝数组(指定范围)
public static void fi11(数组,元素)
填充数组
public static void sort(数组)
按照默认方式进行数组排序
public static void sort(数组,排序规则)
按照指定的规则排序gssdhdfhgdrh*/
int arr[]={3,4,52,25,63,24,25,2,1,4};
System.out.println(Arrays.toString(arr));

    System.out.println("-----------------------------------------------");
    System.out.println(Arrays.binarySearch(arr,0));
    System.out.println(Arrays.binarySearch(arr,6));
    System.out.println(Arrays.binarySearch(arr,3));


    System.out.println("------------------------------------------");
    int []newArr=Arrays.copyOf(arr,20);
    System.out.println(Arrays.toString(newArr));


    System.out.println("------------------------------------------");
    int[]newArr2=Arrays.copyOfRange(arr,5,9);//包右不包左
    System.out.println(Arrays.toString(newArr2));


    System.out.println("------------------------------------------------");
   Arrays.fill(newArr2,100);
    System.out.println(Arrays.toString(newArr2));


    System.out.println("----------------------------------------------");
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));

`
(n+a-1)/a*((m+a-1)/a)
是指codeforce上关于找到
这段代码的意思是,从输入中读取三个整数n,m,a,并输出一个整数,表示用尺寸为a的正方形瓷砖铺满长度为n和宽度为m的地面所需要的瓷砖的数量。
具体的计算方式是通过将n和a相除并向上取整得到需要铺设的瓷砖的行数,同时将m和a相除并向上取整得到需要铺设的瓷砖的列数,最后将两个结果相

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇面试题 16.07. 最大数值 ——一种.. 下一篇Java版人脸跟踪三部曲之二:开发..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目