考点相关案例


冒泡排序--给定一个整数数组,升序排列

二分查找--给定一个已排序的整数数组和一个目标值 在数组中索引查找,不存在返回-1

斐波那契数列(递归)--给定一个整数n,使用递归的方式计算斐波那契数列的第n项

找零问题(贪心算法)--给定一个金额,使用最少的硬币找零,硬币面额1、5、10、25

归并...

Read more

算法考点总结


基础算法:

排序算法

冒泡排序 简单效率低 适合小规模数据

选择排序 每次选择未排序部分的最小值 交换到已排序部分的末尾

快速排序 高效的递归排序算法,通过基准值划分数据

归并排序 稳定的分治排序算法,数组分解为子数组排序后合并

查找算法

二分查找

哈希表 使用哈希函数快速查找元素

算法常用的...

Read more

完美数


include

#include <vector>
using namespace std;

// 计算正整数x的真因数之和 
int sum_proper_divisors(int x) {
    if (x == 1) return 0; // 1没有真因数 
    i...

Read more

局部搜索算法


局部搜索算法是解决优化问题的一类启发式方法,尤其适用于组合优化和NP难问题。其核心思想是从一个初始解出发,通过逐步调整当前解的邻域状态,寻找更优解或近似最优解。


一、核心思想与特点 1. 邻域动作
通过定义邻域操作(如交换、翻转、插入等)生成新解。例如,在旅行商问题中,2-opt操作通...

Read more

岛屿数量统计


```cpp 题目描述

给定一个二维字符数组  grid ,其中包含  '1' (陆地)和  '0' (水),计算岛屿的数量。岛屿被水包围,并且通过水平或垂直方向上相邻的陆地连接而成。你可以假设网格的四个边均被水包围。

示例 1:

plaintext

输入:grid = [ ["1","1...

Read more

大整数幂运算_高精度运算


大整数幂运算

题目描述

给定两个正整数 a 和 n , a 的范围是 1=< a <=10^100, n 的范围是 1 =< n<= 100。计算 a^n 的结果并输出。由于结果可能非常大,需要使用高精度计算。

输入格式

第一行输入一个字符串,表示大整数 a...

Read more

拯救小p_广度优先搜索算法


拯救小P

题目描述

在一个 N×M ( 1 ≤ N, M ≤ 100 )的迷宫里,小P被困在了迷宫的某个位置。迷宫由空地(用 0 表示)和墙壁(用 1 表示)组成。小P可以在1个单位时间内从当前位置移动到上下左右四个相邻的空地上。迷宫的左上角坐标为 (0, 0) ,右下角坐标为 ...

Read more

迷宫探索


迷宫探索

题目描述

给定一个  n * m  的迷宫,迷宫由  0  和  1  组成,其中  0  表示通路, 1  表示墙壁无法通过。你从迷宫的左上角  (0, 0)  出发,每次只能向上下左右四个方向移动一步,且不能走出迷宫边界,问是否能到达右下角  (n - 1, m - 1)  。

...

Read more

产生数


[NOIP2002 普及组] 产生数

题目描述

给出一个整数n和k个变换规则。

规则: - 一位数可变换成另一个一位数。 - 规则的右部不能为零。

例如:n=234,k=2。有以下两个规则:

  • 2------>5。
  • 3------>6。

上面的整数 $234$ 经过变换后可...

Read more