Appearance
数组&排序
笔记-数组倒序遍历 🚀
java
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
@Slf4j
public class MyTest {
@Test
public void test() {
String[] strs = {"1", "2", "3"};
for (int i = strs.length - 1; i > -1; i--) {
log.info(strs[i]);
}
}
}
输出
21:20:53.820 [main] INFO MyTest -- 3
21:20:53.826 [main] INFO MyTest -- 2
21:20:53.827 [main] INFO MyTest -- 1
笔记-Arrays排序 🚀
基本类型只能升序排列
java
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import java.util.Arrays;
@Slf4j
public class MyTest {
@Test
public void test() {
int[] ints = {3, 5, 1, 2, 4};
Arrays.sort(ints);
// Arrays.parallelSort(ints);
log.info(Arrays.toString(ints));
}
}
输出
21:39:22.410 [main] INFO MyTest -- [1, 2, 3, 4, 5]
NB59 简单 草原牛群集合 🚀
简单 时间限制:5秒 空间限制:256M
描述
在草原上,有一群牛分散在不同的位置,他们用整数表示每头牛的位置坐标。牧民召唤了一只牧犬来驱赶牛群。当牧犬在某个位置时,牠会发出召唤牛群集合的信号(用一个整数 val 表示),此时,与牧犬相同位置的所有牛将会集合到其他位置。你需要移除数组中与 val 相同的元素,并返回移动后的数组与剩余元素数量。
要求在原数组的基础上完成移除任务,不引入额外的数组空间。操作的空间复杂度必须为 O(1)。牛群的顺序可以改变。不用考虑新数组长度之外的位置元素。
示例1
输入:
[2, 1, 3, 1, 1, 5],1
返回值:
3
备注:
必须在原数组上修改,不返回原数组,但要检验。
0 <= nums.length <= 100
0 <= nums[i] <= 100
0 <= val <= 100
我的方案
java
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param val int整型
* @return int整型
*/
public int remove_cows (int[] nums, int val) {
Map<Integer, Integer> map = new HashMap<>();
for (int num : nums) {
if (map.containsKey(num)) {
map.put(num, map.get(num) + 1);
} else {
map.put(num, 1);
}
}
return nums.length - (map.containsKey(val) ? map.get(val) : 0);
}
}