双指针常见的三大类用法: 其实双指针可以归为 三类策略,分别是: 1. 对撞指针(Two Pointers from Both Ends) 两个指针从数组/字符串两端向中间靠拢 应用场景: 有序数组求和、回文判断、左右逼近解空间 2. 滑动窗口(Sliding Window) 两个指针从同一端出发,维护一个「窗口」 一般是右指针拓展窗口,左指针收缩…
136.只出现一次的数字 位运算,异或 异或特点: 交换律 结合律 自身异或为 0 与 0 异或不变 136. 只出现一次的数字 - 力扣(LeetCode) //136. 只出现一次的数字public class SingleNumber_136 { static class Solution { //异或运算有加法律和结合律;自身异或为0;与0…
1.两数之和 什么时候使用哈希法?当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。 为什么用map使用map:key:元素;value:下标 import java.util.Arrays;import java.util.HashMap;import java.util.Map;//1.两数之…
一、题目: 排队接水 题目描述 有 $n$ 个人在一个水龙头前排队接水,假如每个人接水的时间为 $T_i$,请编程找出这 $n$ 个人排队的一种顺序,使得 $n$ 个人的平均等待时间最小。 输入格式 第一行为一个整数 $n$。 第二行 $n$ 个整数,第 $i$ 个整数 $T_i$ 表示第 $i$ 个人的等待时间 $T_i$。 输出格式 输出文件有…
一、题目: [NOIP2003 普及组] 栈 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作,即 pop(从栈顶弹出一个元素)和 push(将一个元素进栈)。 栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无…
一、题目: 数楼梯 题目描述 楼梯有 $N$ 阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 样例 #1 样例输入 #1 4 样例输出 #1 5 提示 对于 $60\%$ 的数据,$N \leq 50$; 对于 $100\%$ 的数据,$1 \le N …
一、题目: 1.(ch6_1.c)定义一维数组,存储N个整型数据,输入实际处理元素的个数n(n<=N),产生n个随机数(随机数小于100)存入数组并显示。完成如下功能: (1)求出所有高于平均数的数据。 (2)交换最大数和最小数的位置。 (3)对这组数据进行逆置。 (4)对这组数据进行排序(递增)并显示。 (5)从键盘输入一个数,查找数组中是…
一、题目: [NOIP2007 普及组] 奖学金 题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前 $5$ 名学生发奖学金。期末,每个学生都有 $3$ 门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每…
一、题目: 二、思路: 这段代码的主要思路是解决一个问题:给定一个位置 n,计算达到该位置的最小跳跃次数。 代码的逻辑如下: 首先,通过 cin 语句读取一个整数 t,表示测试用例的数量。 接下来,使用一个 while 循环,重复执行下面的操作 t 次。 在循环内部,通过 cin 语句读取一个整数 n,表示目标位置。 然后,开始计算最小跳跃次数。首…
一、题目: 【深基7.例9】最厉害的学生 题目描述 现有 $N$ 名同学参加了期末考试,并且获得了每名同学的信息:姓名(不超过 $8$ 个字符的仅有英文小写字母的字符串)、语文、数学、英语成绩(均为不超过 $150$ 的自然数)。总分最高的学生就是最厉害的,请输出最厉害的学生各项信息(姓名、各科成绩)。如果有多个总分相同的学生,输出靠前的那位。 输…