11 2021 档案

摘要:统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: 0 【解题思路】 由于是有序数组,考虑采用二分法,分别查找数组的左 阅读全文
posted @ 2021-11-21 09:09 xmubaron 阅读(28) 评论(0) 推荐(0)
摘要:给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。 输入:root = [1,null,3,2,4,null,5,6] 输出:3 【解法一:bfs】 /* // Definition 阅读全文
posted @ 2021-11-21 08:49 xmubaron 阅读(33) 评论(0) 推荐(0)
摘要:1、和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。 数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。 【解题思路一】 先将数组排序 阅读全文
posted @ 2021-11-20 22:50 xmubaron 阅读(215) 评论(0) 推荐(0)
摘要:public class test { int i = 1; public static void main(String[] args) { test obj = new test(); // 使用匿名内部类的形式 Runnable runnable = new Runnable() { @Ove 阅读全文
posted @ 2021-11-20 16:31 xmubaron 阅读(24) 评论(0) 推荐(0)
摘要:import java.lang.*; import java.util.*; class LRUCache{ int cap; LinkedHashMap<Integer, Integer> cache = new LinkedHashMap<>(); public LRUCache(int ca 阅读全文
posted @ 2021-11-20 16:27 xmubaron 阅读(45) 评论(0) 推荐(0)
摘要:import java.lang.*; import java.util.*; public class Main{ /* 删除链表中连续和为0的节点 */ static class ListNode{ int value; ListNode next = null; public ListNode 阅读全文
posted @ 2021-11-20 16:05 xmubaron 阅读(30) 评论(0) 推荐(0)
摘要:#include<iostream> #include<vector> using namespace std; const int N = 10010; /* 输入n个整数,输出出现次数大于等于数组长度一半的数。 */ int main(){ int n; vector<int> q; while 阅读全文
posted @ 2021-11-20 15:47 xmubaron 阅读(87) 评论(0) 推荐(0)
摘要:深度搜索 1、给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数 n。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数据范围 1≤n≤7 输入样例: 3 输出样例: 1 2 3 1 3 2 2 1 阅读全文
posted @ 2021-11-10 17:44 xmubaron 阅读(39) 评论(0) 推荐(0)
摘要:链表 // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点 int head, e[N], ne[N], idx; // 初始化 void init() { head = -1; idx = 0; } // 在链表头插入一个数a void ins 阅读全文
posted @ 2021-11-10 17:42 xmubaron 阅读(61) 评论(0) 推荐(0)
摘要:习题 1、第K个数 给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k个数。 输入格式 第一行包含两个整数 n 和 k。 第二行包含 n 个整数(所有整数均在 1∼1091∼109 范围内),表示整数数列。 输出格式 输出一个整数,表示数列的第 k 小数 阅读全文
posted @ 2021-11-10 17:37 xmubaron 阅读(80) 评论(0) 推荐(0)
摘要:离散化 vector<int> alls; // 存储所有待离散化的值 sort(alls.begin(), alls.end()); // 将所有值排序 alls.erase(unique(alls.begin(), alls.end()), alls.end()); // 去掉重复元素 // 二 阅读全文
posted @ 2021-11-10 17:36 xmubaron 阅读(40) 评论(0) 推荐(0)
摘要:双指针算法 for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑 } 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中 阅读全文
posted @ 2021-11-10 17:35 xmubaron 阅读(31) 评论(0) 推荐(0)
摘要:前缀和和差分 1、前缀和 #include <iostream> using namespace std; const int N = 100010; int n, m; int a[N], s[N]; int main() { scanf("%d%d", &n, &m); for (int i = 阅读全文
posted @ 2021-11-10 17:34 xmubaron 阅读(47) 评论(0) 推荐(0)
摘要:高精度算法(大数) 1、大数相加 #include <iostream> #include <vector> using namespace std; vector<int> add(vector<int> &A, vector<int> &B) { if (A.size() < B.size()) 阅读全文
posted @ 2021-11-10 17:33 xmubaron 阅读(34) 评论(0) 推荐(0)
摘要:归并排序 模板题 AcWing 787. 归并排序 #include <iostream> using namespace std; const int N = 1e5 + 10; int a[N], tmp[N]; void merge_sort(int q[], int l, int r) { 阅读全文
posted @ 2021-11-10 17:32 xmubaron 阅读(7) 评论(0) 推荐(0)
摘要:快排 模板题 AcWing 785. 快速排序 #include<iostream> #include<cstdio> using namespace std; const int N = 1e5+10; int n,q[N]; void quick_sort(int q[],int l,int r 阅读全文
posted @ 2021-11-10 17:31 xmubaron 阅读(56) 评论(0) 推荐(0)
摘要:1、数的二分模板题 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。 如果数组中不存在该元素,则返回 -1。 输入格式: 第一行包含整数 n 和 q,表示数组长度和询问个数。 第二行包含 n 个整数(均在 阅读全文
posted @ 2021-11-10 17:28 xmubaron 阅读(36) 评论(0) 推荐(0)