D354周赛复盘:特殊元素平方和+数组最大美丽值(滑动窗口)+合法分割最小下标

2023-11-03

6889.特殊元素平方和

  • 主要注意点是本题的i并不是数组下标的i,是按照数字顺序来的

给你一个下标从 1 开始、长度为 n 的整数数组 nums 。

对 nums 中的元素 nums[i] 而言,如果 n 能够被 i 整除,即 n % i == 0 ,则认为 num[i] 是一个 特殊元素 。

返回 nums 中所有 特殊元素 的 平方和 。

示例 1:

输入:nums = [1,2,3,4]
输出:21
解释:nums 中共有 3 个特殊元素:nums[1] ,因为 41 整除;nums[2] ,因为 42 整除;以及 nums[4] ,因为 44 整除。 
因此,nums 中所有元素的平方和等于 nums[1] * nums[1] + nums[2] * nums[2] + nums[4] * nums[4] = 1 * 1 + 2 * 2 + 4 * 4 = 21

示例 2:

输入:nums = [2,7,1,19,18,3]
输出:63
解释:nums 中共有 4 个特殊元素:nums[1] ,因为 61 整除;nums[2] ,因为 62 整除;nums[3] ,因为 63 整除;以及 nums[6] ,因为 66 整除。 
因此,nums 中所有元素的平方和等于 nums[1] * nums[1] + nums[2] * nums[2] + nums[3] * nums[3] + nums[6] * nums[6] = 2 * 2 + 7 * 7 + 1 * 1 + 3 * 3 = 63

提示:

  • 1 <= nums.length == n <= 50
  • 1 <= nums[i] <= 50

思路

本题属于比较简单的模拟题,遍历再模拟是否整除即可。

完整版

class Solution {
public:
    int sumOfSquares(vector<int>& nums) {
    	int sum=0;
        int n=nums.size();//本题的判断对象是n
        //for循环遍历里面是本题的自定义数组下标
        for(int i=1;i<=nums.size();i++){
            if(n%i==0){
                //此处是真实的数组下标
                sum+=nums[i-1]*nums[i-1];
            }
        }
        return sum;
	}
};

取模注意:不能对0取余/取模

因为数组的下标从0开始,但是所有对0的取余/取模运算都是违法的

最开始写成了:

class Solution {
public:
    int sumOfSquares(vector<int>& nums) {
    	int sum=0;
        int n=nums.size();//本题的判断对象是n
        for(int i=0;i<nums.size();i++){
            if(n%i==0){
                sum+=nums[i]*nums[i];
            }
        }
        return sum;
	}
};

但是会出现执行错误,不能对0取模

在这里插入图片描述

解答错误:本题的数组最后一个下标是nums[nums.size()]

当我们直接改成初始值i=1,又会出现结果错误

在这里插入图片描述

原因是从示例中我们看出,nums[4]是最后一个元素,也就是说本题的下标并不是按照普通数组的形式,而是与数字顺序一致,题目里的数组下标特殊含义也要注意

在这里插入图片描述

因此,本题的for循环应该从i=1开始遍历,一直到i=nums.size()。内部求平方和的逻辑直接用nums[i-1]进行计算。

6929.数组的最大美丽值(排序+滑动窗口)

  • 本题主要是需要想到,经过排序,相等的元素会相邻在一起,也就是说相等的元素成为了连续序列,求序列最大长度就是滑动窗口类型题目了。
  • 本题关于元素顺序保持不变的要求可以忽略,一是因为求最大长度和元素顺序无关,二是因为所有解法都不能保证不改变元素顺序。(需要排序

给你一个下标从 0 开始的整数数组 nums 和一个 非负 整数 k

在一步操作中,你可以执行下述指令:

  • 在范围 [0, nums.length - 1] 中选择一个 此前没有选过 的下标 i
  • nums[i] 替换为范围 [nums[i] - k, nums[i] + k] 内的任一整数。

数组的 美丽值 定义为数组中由相等元素组成的最长子序列的长度。

对数组 nums 执行上述操作任意次后,返回数组可能取得的 最大 美丽值。

**注意:**你 能对每个下标执行 一次 此操作。

数组的 子序列 定义是:经由原数组删除一些元素(也可能不删除)得到的一个新数组,且在此过程中剩余元素的顺序不发生改变。

示例 1:

输入:nums = [4,6,1,2], k = 2
输出:3
解释:在这个示例中,我们执行下述操作:
- 选择下标 1 ,将其替换为 4(从范围 [4,8] 中选出),此时 nums = [4,4,1,2]- 选择下标 3 ,将其替换为 4(从范围 [0,4] 中选出),此时 nums = [4,4,1,4] 。
执行上述操作后,数组的美丽值是 3(子序列由下标 013 对应的元素组成)。
可以证明 3 是我们可以得到的由相等元素组成的最长子序列长度。

示例 2:

输入:nums = [1,1,1,1], k = 10
输出:4
解释:在这个示例中,我们无需执行任何操作。
数组 nums 的美丽值是 4(整个数组)。

提示:

  • 1 <= nums.length <= 105
  • 0 <= nums[i], k <= 105

思路1:排序+滑动窗口

因为美丽值的定义是数组中由相等元素组成的最长子序列的长度,因此我们想要获得全部都是相等元素的序列,并求最大长度

虽然本题要求 子序列 定义是剩余元素的顺序不发生改变,但是求的是相等元素组成的最长子序列长度,因此元素的顺序并不影响结果

(实际上本题所有解法都不考虑元素顺序,所以这个条件有点问题)

因此我们可以先进行排序,让相等的元素排在一起,此时只需要判断窗口左端点(最小值)和右端点(最大值)是不是相等,也就是只有nums[r]-k<=nums[l]+k的时候,才作为有效窗口

此时,本题就转变成了,求满足nums[r]-k<=nums[l]+k条件的最长子序列,也就是找最长的连续子数组,其最大值-最小值不超过2k。

也属于找最长子序列问题。最长子序列需要枚举右端点,只有不满足条件的时候,才更新左端点。

算法专题整理:滑动窗口_大磕学家ZYX的博客-CSDN博客

class Solution {
public:
    int maximumBeauty(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        int res=0;
        for (int l = 0, r = 0; r < nums.size(); ++r) {
            while (nums[r]-k > nums[l] + k) {
            	l++;
            }
            res = max(res, r - l + 1);
        }
        return res;
    }
};

注意点

由于选的是子序列,且子序列的元素都相等,所以元素顺序对答案没有影响,可以先对数组排序

且仔细看用例1可以看出,并不要求最后的子数组在原数组也是连续的只是找替换后相等的数字组成的总长度,并不是找原数组中就连续的子数组

参考题解:
灵茶山艾府
力扣周赛总结

6927. 合法分割的最小下标(倒推的思路)

  • 本题重点是想明白,如果想要相等,最后那个结果肯定是原数组的支配元素
  • 因此可以根据支配元素的结果倒推,已知支配元素一定是这个数值,去求那两个子数组支配元素是不是这个。这种倒推的思路要注意。

如果元素 x 在长度为 m 的整数数组 arr 中满足 freq(x) * 2 > m ,那么我们称 x支配元素 。其中 freq(x)x 在数组 arr 中出现的次数。注意,根据这个定义,数组 arr 最多 只会有 一个 支配元素。

给你一个下标从 0 开始长度为 n 的整数数组 nums ,数据保证它含有一个支配元素。

你需要在下标 i 处将 nums 分割成两个数组 nums[0, ..., i]nums[i + 1, ..., n - 1] ,如果一个分割满足以下条件,我们称它是 合法 的:

  • 0 <= i < n - 1
  • nums[0, ..., i]nums[i + 1, ..., n - 1] 的支配元素相同。

这里, nums[i, ..., j] 表示 nums 的一个子数组,它开始于下标 i ,结束于下标 j ,两个端点都包含在子数组内。特别地,如果 j < i ,那么 nums[i, ..., j] 表示一个空数组。

请你返回一个 合法分割最小 下标。如果合法分割不存在,返回 -1

示例 1:

输入:nums = [1,2,2,2]
输出:2
解释:我们将数组在下标 2 处分割,得到 [1,2,2][2] 。
数组 [1,2,2] 中,元素 2 是支配元素,因为它在数组中出现了 2 次,且 2 * 2 > 3 。
数组 [2] 中,元素 2 是支配元素,因为它在数组中出现了 1 次,且 1 * 2 > 1 。
两个数组 [1,2,2][2] 都有与 nums 一样的支配元素,所以这是一个合法分割。
下标 2 是合法分割中的最小下标。

示例 2:

输入:nums = [2,1,3,1,1,1,7,1,2,1]
输出:4
解释:我们将数组在下标 4 处分割,得到 [2,1,3,1,1][1,7,1,2,1] 。
数组 [2,1,3,1,1] 中,元素 1 是支配元素,因为它在数组中出现了 3 次,且 3 * 2 > 5 。
数组 [1,7,1,2,1] 中,元素 1 是支配元素,因为它在数组中出现了 3 次,且 3 * 2 > 5 。
两个数组 [2,1,3,1,1][1,7,1,2,1] 都有与 nums 一样的支配元素,所以这是一个合法分割。
下标 4 是所有合法分割中的最小下标。

示例 3:

输入:nums = [3,3,3,3,7,2,2]
输出:-1
解释:没有合法分割。

提示:

  • 1 <= nums.length <= 105
  • 1 <=nums[i] <= 109
  • nums 有且只有一个支配元素。

思路

这道题的重要注意点在于,如果想要两个子数组的支配元素相等,那么这个支配元素,肯定也是原数组的支配元素

所以就可以倒过来推导,先求原数组支配元素,然后再看这个支配元素,是否在两个子数组里也是支配的

想明白这一点之后,剩下的就是模拟了,模拟的部分也可以练习一下。

思路1:哈希表统计元素频率

首先,要找到这个数组的支配元素。我们可以使用哈希表(unordered_map)来存储每个元素的频率。在这个过程中,我们同时找出频率最高的元素,即为我们的支配元素。

在找到支配元素后,再次遍历数组。这一次遍历要找出合法的分割点。一个合法的分割点需要满足以下条件:

  • [0, …, i] 的支配元素与整个数组的支配元素相同,即 nums[i] == dominator;
  • 在当前分割点之前(包括分割点),支配元素的出现次数超过了数组的一半,即 count > (i + 1) / 2;
  • 在当前分割点之后,剩余的支配元素出现次数仍超过后半部分数组的一半,即 (maxFreq - count) > (n - i - 1) / 2。
  • 如果当前分割点满足以上所有条件,我们就找到了一个合法的分割点。我们需要找的是最小的分割点,所以一旦找到,我们就直接返回这个分割点的索引 i。
class Solution {
public:
    int minimumIndex(vector<int>& nums) {
        //先建立哈希表统计原数组的支配元素
        unordered_map<int,int>umap;
        //遍历所有元素统计频率
        int maxFreq = 0;
        int x=0;
        for(int i=0;i<nums.size();i++){
            umap[nums[i]]++;
            //最大频率
            if(umap[nums[i]]>maxFreq){
                maxFreq = umap[nums[i]];
                x=nums[i];//同时存储频率最高数值
            }
        }

        //遍历i,对于i分割的两个子数组判断支配元素是不是x
        int count=0;
        for(int i=0;i<nums.size();i++){
            if(nums[i]==x){  //统计支配元素的频率
                count++;
            }
            //统计完了可以直接判断i之前元素的count是不是>长度/2,之后的频率是不是>长度/2
            //注意边界条件的长度,i+1已经算了i本身了,后面的nums.size()-i就不能算i了!
            if(count>(i+1)/2&&(maxFreq-count)>(nums.size()-i-1)/2){
                return i;
            }
        }
        return -1;
        
        
    }
};

思路2:投票法找出出现频率最高的元素

也可以用投票法,求出占比最高的元素及其频率。

投票法介绍

投票法是一种用于找出数组中多数元素的算法,这个算法的基本原理是:

如果一个元素是数组的多数元素(出现次数超过数组长度的一半),那么即使我们把它和其他每个不同的元素一一抵消(每次都从数组中删除两个不同的元素),最后剩下的一定是这个多数元素

由于题目保证了数组中最多只存在一个支配元素,投票法最后找到的元素必然是这个支配元素

class Solution {
public:
    int minimumIndex(vector<int>& nums) {
        int n = nums.size();
        int cnt = 0, x = 0;
        // 投票法求元素 x
        for (int num: nums) {  // 遍历数组
            if (num == x) {  // 如果当前元素等于候选元素
                cnt++;  // 候选元素的票数加一
            } else {  // 如果当前元素不等于候选元素
                cnt--;  // 候选元素的票数减一,相当于抵消掉了
                if (cnt < 0) {  // 如果票数小于0
                    x = num;  // 将当前元素作为新的候选元素
                    cnt = 1;  // 将新的候选元素的票数设为1
                }
            }
        }
        
        // 求 x 出现的总数
        int sum = 0;
        for (int num: nums) {  // 再次遍历数组
            if (x == num) sum++;  // 如果当前元素等于支配元素,将支配元素的总数加一
        }
        // 枚举求解 i
        cnt = 0;
        for (int i = 0; i < n; ++i) {  // 再次遍历数组,寻找分割点
            if (x == nums[i]) cnt++;  // 如果当前元素等于支配元素,将支配元素的出现次数加一
            if (cnt * 2 > (i + 1) && (sum - cnt) * 2 > (n - i - 1)) 
                return i;  // 检查是否满足分割条件,如果满足,返回当前索引
        }
        return -1;  // 如果遍历完数组都没有找到合法的分割点,返回-1
    }
};

补充:投票法

  • 投票法是找**数组中出现频率超过半数(必须是超过不能是等于)**的元素。
  • 数组中出现频率超过半数的元素,一定只有一个

投票法(Boyer-Moore Voting Algorithm)是一种用于在数组中查找主要元素的算法,主要元素定义为一个元素出现次数超过数组长度的一半。它并不一定能找到频率最高的元素,例如在数组 [1, 2, 2, 3, 3, 3] 中,频率最高的元素是 3,但没有元素出现次数超过数组长度的一半,因此投票法不会返回任何元素。如果数组 [1, 1, 2, 2, 3, 3, 3, 3] 中,频率最高的元素也是主要元素,这时投票法会返回元素 3

示例:

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int count = 0;
        int candidate = 0;
        
        for(int num : nums){
            if (count == 0) {
                candidate = num;  // 当前候选主要元素
            }
            count += (num == candidate) ? 1 : -1;  // 如果当前元素等于候选主要元素,票数加1,否则减1
        }
        
        return candidate;  // 返回最后的候选主要元素
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

D354周赛复盘:特殊元素平方和+数组最大美丽值(滑动窗口)+合法分割最小下标 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • 使用 Microsoft Graph API 订阅 Outlook 推送通知时出现 400 错误请求错误

    我正在尝试使用 Microsoft Graph API 创建订阅以通过推送通知获取 Outlook 电子邮件 mentions 我在用本文档 https learn microsoft com en us graph api subscri
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 写入和读取文本文件 - C# Windows 通用平台应用程序 Windows 10

    有用 但在显示任何内容之前 您必须在文本框中输入内容 我想那是因为我使用了 TextChanged 事件处理程序 如果我希望它在没有用户交互的情况下显示文本文件的内容 我应该使用哪个事件处理程序 因此 我想在按下按钮时将一些数据写入 C W
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new

随机推荐

  • 死锁,死锁必要条件及处理策略

    大自然的搬运工 完美分割线 多线程中 常见的一种问题除了竞态条件外就是死锁 那什么是死锁呢 死锁就是 是指两个或两个以上的进程在执行过程中 因争夺资源而造成的一种互相等待的现象 若无外力作用 它们都将无法推进下去
  • 图片在div中居中

    一 方法1 html代码 div class content img src img 举手yeah png div css代码 content display flex justify content center align items
  • 微服务网关实战——Spring Cloud Gateway

    导读 作为Netflix Zuul的替代者 Spring Cloud Gateway是一款非常实用的微服务网关 在Spring Cloud微服务架构体系中发挥非常大的作用 本文对Spring Cloud Gateway常见使用场景进行了梳理
  • 带你一周刷完操作系统视频笔记(3)

    本片笔记将会从基本概念 进程结构 区分进程线程这三个方面解释什么是进程 process 概念 process是一个具有一定独立功能的程序关于某个数据集合的一次运行活动 是系统进行资源分配和调度的独立单位 是资源分配的最小单位 要点 进程是程
  • SD卡通信协议那些事

    SD卡通信 SD卡通信协议主要包括物理层 数据传输层和应用层三个部分 物理层 SD卡使用SPI或SDIO两种物理层协议进行通信 SPI是一种同步串行通信协议 使用4根信号线进行通信 SDIO是一种异步串行通信协议 使用9根信号线进行通信 数
  • Jenkins用户权限控制插件——Role-based Authorization Strategy

    看了下公司的jenkins权限配置 发现公司用的是Role based Authorization Strategy插件做的权限控制 之前公司一直用的是安全矩阵的方式控制的 这里就大概记录一下吧 使用Role based Authoriza
  • Mybatis 笔记(1)- 搭建最基础的springboot+mybatis结构

    不讲mybatis的历史 mybatis和springmvc的历史 这里只列举springboot和mybatis整合需要做哪些工作 1 添加依赖 版本可以根据你的实际情况自行调整 2 配置dao mapper interface 和 Ma
  • selenium-server

    Selenium grid for selenium1 and webdriver Introduction Grid allows you to scale by distributing tests on several machine
  • 最便宜的云服务器

    阿里云和腾讯云都有推广活动 所以价格比较低 但直接从首页下单还是原价 必须从他们的推广链接 看下文 进去下单才便宜 顺便比较了一下网易云 华为云 都没有这么便宜 阿里云 点击选购最便宜服务器 阿里云福利 阿里云1888元优惠券红包
  • linux查看各进程占用cpu/内存情况

    目录 一 ps top命令 1 ps命令 1 1 语法 1 2 使用场景 2 top命令 1 语法 2 top命令内容说明 3 top命令使用过程中的交互的命令 二 排序进程 1 复杂方法 2 简单方法 很多时候 你可能遇见过系统消耗了过多
  • 【底层驱动不含main】XPT2046 制作一个电位器AD转换装置

    简介 XPT2046是一款四线制电阻触摸屏控制芯片 内含12位分辨率125KHz转换速率逐步逼近型A D转换器 支持从1 5V到5 25V的低电压I O接口 所谓逐步逼近型 就是输入一个模拟量 其与1000 0000 0000 对应的模拟量
  • ubuntu20安装ros noetic

    记录下自己在虚拟机上安装ros Noetic的过程 也供大家参考 我使用的虚拟机是vmware 默认已经安装好ubuntu20了 ubuntu20对应的ros版本是noetic 这里只记录了最少的命令 大家可根据自己需要安装其它所需的包 1
  • shell while true

    7 while循环注意为方括号 且注意空格 min 1 max 100 while min le max do echo min min expr min 1 done 8 双括号形式 内部结构有点像C的语法 注意赋值 i i 1 i 1
  • android 使用 onnxruntime 部署 scrfd 人脸检测

    下面是使用 opencv camera 实时处理区域内人脸检测 android 推理 demo 首先是整合 opcv camera 进去 为了方便直接将整个 opencv android sdk 全部导入 然后在原来的项目模块app中添加
  • java知识点之数据类型总结【全】

    java数据类型总结 目录 java数据类型总结 一 java数据类型知识点总结 1 Java变量 1 1 什么是变量 1 2 变量声明的方式 1 3 变量的分类 1 4 变量的命名规范 扩展 包 类 方法等命名规范 2 Java常量 2
  • 定义一个一维数组,其元素个数从键盘中输入,元素的值为[100,200]的随机整数。 (1)输出数组的每个数 (2)对数组的数进行升序排序,输出排序后的数组元素 (3)从键盘上输入一个整数,查找该整数是

    定义一个一维数组 其元素个数从键盘中输入 元素的值为 100 200 的随机整数 1 输出数组的每个数 2 对数组的数进行升序排序 输出排序后的数组元素 3 从键盘上输入一个整数 查找该整数是否存在 若存在输出其所在的下标 若不存在给出提示
  • java多线程并发

    目录 一 原子性 有序性 可见性 1 原子性 2 有序性 3 可见性 二 如何保证以上三性 1 硬件层面解决 1 在总线加 LOCK 锁 2 使用缓存一致性协议 2 软件层面解决 1 背景 JVM内存模型 2 原子性 3 可见性 4 有序性
  • [需求管理-9]:需求规格说明书SRS

    目录 第1章 需求规格说明书概述 1 1 什么软件项目需求规格说明书 1 2 需要规格说明书在项目中阶段 1 3 需要规格说明书的作用 1 4 主要特点 1 5 衡量标准 1 7 评审注意事项 第2章 需要规格说明书的格式与主要内容 1 引
  • Ubuntu20.04安装MySQL8

    Ubuntu20 04安装MySQL8 MySQL8下载 点击MySQL download下载官网 按照自己所需要的版本下载对应的MySQL版本 如下图 点击下载后在进行解压 大致文件如下所示 然后需要一次安装对应的 deb文件 普通 de
  • D354周赛复盘:特殊元素平方和+数组最大美丽值(滑动窗口)+合法分割最小下标

    文章目录 6889 特殊元素平方和 思路 完整版 取模注意 不能对0取余 取模 解答错误 本题的数组最后一个下标是nums nums size 6929 数组的最大美丽值 排序 滑动窗口 思路1 排序 滑动窗口 注意点 6927 合法分割的