一、概述 二分查找又称折半查找,是一种能够大幅减少时间复杂度的查找方法,但是二分查找要求线性表必须词用顺序储存结构,而且表中元素按关键字有序排列。 在后续讨论中,我们假设有序表递增有序。 二分查找中使用的术语: 目标 Target —— 你要查找的值 索引 Index —— 你要查找的当前位置 左、 ...
给你一个下标从 0 开始、由正整数组成的数组 nums 。 你可以在数组上执行下述操作 任意 次: 选中一个同时满足 0 <= i < nums.length - 1 和 nums[i] <= nums[i + 1] 的整数 i 。将元素 nums[i + 1] 替换为 nums[i] + nums ...
给你一个 二进制 字符串 s ,其中至少包含一个 '1' 。 你必须按某种方式 重新排列 字符串中的位,使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式,表示并返回可以由给定组合生成的最大二进制奇数。 注意 返回的结果字符串 可以 含前导零。 示例 1: 输入: s = "0 ...
给出一个满足下述规则的二叉树: root.val == 0 如果 treeNode.val == x 且 treeNode.left != null,那么 treeNode.left.val == 2 * x + 1 如果 treeNode.val == x 且 treeNode.right != ...
你说你会改变,但是你只是为了解决当时的冲突而讲的话。 给你一个链表头节点head和x,要求链表中所有小于x的节点都出现在大于或等于x的节点之前 例如:head = [1,4,3,2,5,2], x = 3; 输出:[1,2,2,4,3,5] 在合并两个链表的时候,是将两个链表合并成一个,拆分的时候, ...
给你一个字符串 title ,它由单个空格连接一个或多个单词组成,每个单词都只包含英文字母。请你按以下规则将每个单词的首字母 大写 : 如果单词的长度为 1 或者 2 ,所有字母变成小写。 否则,将单词首字母大写,剩余字母变成小写。 请你返回 大写后 的 title 。 示例 1: 输入:title ...
计算几何——扫描线 学习笔记 你会发现我的笔记的顺序和很多扫描线的讲解是反着来的。 其实是和我老师给的课件完全是逆序(谁帮我算一下逆序对啊喵)。 前言 一开始以为扫描线就是用来求二维几何图像的信息的。 但是其实这个并不准确。个人认为,扫描线其实是一个思想,就像动态规划一样。 具体的,其思想为,用一根 ...
166. 数独 - AcWing题库 题意 数独 是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得数独中每行、每列、每个 3×3 的九宫格内数字 1∼9 均恰好出现一次。 请编写一个程序填写数独。 思路 搜索+剪枝(优化搜索顺序、位运算) 优化搜索顺序:很明显,我们肯定是从当前能填合法 ...
A - Spoiler (abc344 A) 题目大意 给定一个字符串,包含两个|,将|和两个|之间的字符消去。 解题思路 按照题意模拟即可。 Python比较简洁。 神奇的代码 s = input().split('|') s = s[0] + s[2] print(s) B - Delimite ...
嗯,这就是小学难度,起码我学这些东西的时候我是个小学生 线性求逆元 这个玩意要分两块讲,\(p\) 是模数。 线性求 \(1 \sim N\) 的逆元 对于一个 \(i\): \[\text{设} a = \lfloor \frac{p}{i} \rfloor, \ b = p \bmod i, \ ...
title: categories: 算法题解 description: tags: - atcoder - 思维 - 线段树 - DP - 字符串hash - 状压DP cover: /img/chino/vec/chino44.jpg katex: true date: 2024-03-07 1 ...
树、森林 树的存储结构 双亲表示法 双亲表示法的存储结构 #define MAX_TREE_SIZE 100 typedef struct { int data; int parent; }PTNode; typedef struct { PTNode nodes[MAX_TREE_SIZE]; i ...
题意 给你 \(N\) 个由小写字母组成的字符串 \(S_1, S_2, \ldots, S_N\),找出一个母串使得它包含所有这些字符串作为它的子串,最小化该母串的长度并输出。 \(1 \leq N \leq 20\),\(\sum |S_i| \leq 2 \times 10 ^ 5\) (没错 ...
树的基本概念 树的定义 树是由\(n(n \geq 0)\)个节点组成的有限集。当\(n = 0\)时,称为空树。 任意一棵非空树应满足以下两点: (1)有且仅有一个特定的称为根的节点; (2)当\(n > 1\)时,其余节点可分为\(m(m>0)\)个互不相交的有限集\(T_1, T_2, \do ...
977 有序数组的平方 冒泡排序 暴力冒泡排序实现 class Solution { public: vector<int> sortedSquares(vector<int>& nums) { int size = nums.size(); int tmp; for (int i = 0; i < ...
1. 数组 数组定义 数组(Array)是有序的元素序列。属于线性结构(有且仅有一个前驱、有且仅有一个后继)。 数组特点 数组的关键在于在内存中的物理地址对应的是一段连续的内存。这意味着如果想要在任意位置删除/新增一个元素,那么该位置往后的所有元素,都需要往前挪/往后挪一个位置。假设数组的长度是 n ...
A - Yay! (abc342 A) 题目大意 给定一个字符串,两个字符,其中一个只出现一次,找出它的下标。 解题思路 看第一个字符出现次数,如果是\(1\)则就是它,否则就是不是它的字符。 神奇的代码 #include <bits/stdc++.h> using namespace std; u ...
原题链接:COGS 775 题目描述: “南山之首曰鹊山。其首曰招摇之山,临于西海之上,多桂,多金玉。有草焉,其状如韭而青华,其名曰祝余,食之不饥……又东三百里,曰堂庭之山,多棪木,多白猿,多水玉,多黄金。又东三百八十里,曰猨翼之山,其中多怪兽,水多怪鱼,多白玉,多蝮虫,多怪蛇,名怪木,不可以上。… ...
近期某手游出了个活动,经确认发现本质为十滴水游戏。 简单说一下规则,棋盘大小通常为6x6,在游戏开始时,棋盘随机有若干水珠,其大小范围为1-4。点击棋盘内的一格,会消耗玩家持有的1个小水滴,同时使得该单元格的水珠大小+1。如果水珠大小超过4,则水珠发生爆炸并消失,同时向四个方向各发射1个小水滴。小水 ...
2024年二月信息集训是数学专题,请来了101的高考前十名lsy学长来给我们介绍OI中的数学,主要包括了数论专题,博弈论与容斥。 ...