最重点,哈希表
`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"并将该字符串添加到哈希表中。
代码解释如下:
for (int i = 0; i < n; i++)
:循环n次,用来处理n个输入的字符串。String a = sc.nextLine();
:从输入中读取一行字符串,并将其赋值给变量a。if (hash_t.containsKey(a))
:判断哈希表hash_t中是否包含字符串a,即判断a是否已经出现过。- 如果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和出现次数。 - 如果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相除并向上取整得到需要铺设的瓷砖的列数,最后将两个结果相