文章目录
- 2024
- 心得
- 05
- 04 堆/栈/队列
- 用两个栈实现队列
- 05 哈希
- BM52 数组中只出现一次的两个数字
2024
- 牛客网在线编程
心得
- 大厂会要求,这个其实没有什么用,就是故意为难人,但是要想找一份工作,这个还是只能去遵守规则。
- 面试造火箭,进厂打螺丝,就是事实,但是就是要会算法才可以进,现实就是这么扯蛋。
05
04 堆/栈/队列
用两个栈实现队列
来源 链接
import java.util.*;
import java.util.Stack;public class Solution {Stack<Integer> stack1 = new Stack<Integer>();Stack<Integer> stack2 = new Stack<Integer>();public void push(int node) {stack1.push(node);}public int pop() {if (stack2.size() <= 0) {while (stack1.size() != 0) {stack2.push(stack1.pop());}}return stack2.pop();}
}
05 哈希
BM52 数组中只出现一次的两个数字
引用链接
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型一维数组 * @return int整型一维数组*/public int[] FindNumsAppearOnce (int[] array) { // 用于返回结果int[] res = new int[2];// 创建一个哈希表HashMap<Integer,Object> set = new HashMap<>();for(int i = 0; i < array.length; i++){// 如果已经被当作key了,那就直接remove掉if(set.containsKey(array[i])){set.remove(array[i],null);}else{// 否则就添加进去set.put(array[i],null);}}int i = 0;// 最后拿出来放进返回结果的数组中进行返回for(Integer num:set.keySet()){res[i++] = num;}return res;}}