【备战秋招】——算法题目训练和总结day3

【备战秋招】——算法题目训练和总结day3😎

  • 前言🙌
    • BC149简写单词
        • 题解思路分析
        • 代码分享:
    • dd爱框框
        • 题解思路分析
        • 代码分享:
    • 除2!
        • 题解思路分析
        • 代码分享:
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘都是精华内容,可不要错过哟!!!😍😍😍

BC149简写单词

链接: 149简写单词
在这里插入图片描述

在这里插入图片描述

题解思路分析

算法思想:模拟。

  1. 首先是认真审题,结合示例理解。
  2. 我们可以利用cin流提取的特点,巧妙的跳过空格。每一次读到一个单词,然后将首字母进行一个简单的判断,如果是大写字母就转小写。
代码分享:
#include <iostream>
using namespace std;int main()
{string s;while(cin >> s){if(s[0] >= 'a' && s[0] <= 'z') cout << (char)(s[0] - 32);else cout << s[0];}return 0;
}

dd爱框框

链接: dd爱框框

在这里插入图片描述
在这里插入图片描述

题解思路分析

算法思想:同向双指针/滑动窗口

  1. 首先是认真审题,结合示例理解
  2. 写出滑动窗口四部法则:进窗口、判断、出窗口、更新结果注意什么时候要跟新结果,这个因题而异。这里的更新结果放到判断和出窗口之间的位置。
  • 进窗口:sum += a[r];
  • 判断:sum >= x
  • 出窗口:sum -= a[l++];
  • 更新结果:r - l + 1< mindis
  1. 根据四步,完成代码,并注意细节即可
代码分享:
#include<iostream>
using namespace std;const int N = 1e7 + 10;
int a[N];
int l = 0, r = 0, sum = 0;
int mindis = 0x3f3f3f3f;int main()
{int n , x;int left,right;cin >> n >> x;for(int i = 1; i <= n; i++){cin >> a[i];}while(r <= n){//进窗口sum += a[r];//判断while(sum >= x){//更新if(r - l + 1< mindis){left = l;right = r;mindis = r - l + 1;}//出窗口sum -= a[l++];}r++;}cout << left << " " << right << endl;return 0;
}

除2!

链接: 除2!
在这里插入图片描述

在这里插入图片描述

题解思路分析

算法思想:模拟 + 贪心 + 堆

  1. 首先是认真审题,结合示例理解。这里的数据个数和范围都比较大,如果累加,会有溢出情况的。因此我们定义的sum为long long 类型。博主就是因为没审清楚题,掉在坑里半天了。。。。
  2. 既然要使得最后数组之和最小,那很自然的我们就想到贪心的思想,即每一次操作都把最大的那个偶数进行减半。
  3. 我们借助堆数据结构,可以进行一个很好的控制,写起代码来也比较好控制。
代码分享:
#include<iostream>
#include<queue>
using namespace std;int main()
{int n,k;cin >> n >> k;long long sum = 0;int a = 0;priority_queue<int> heap;for(int i = 0; i < n; i++){cin >> a;sum += a;if(a % 2 == 0)heap.push(a);}while(!heap.empty() && k--){int t = heap.top() / 2;heap.pop();sum -= t;if(t % 2 == 0)heap.push(t);}cout << sum << endl;return 0;
}

总结撒花💞

   本篇文章旨在分享的是算法题目题解知识。希望大家通过阅读此文有所收获
   😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gradle 介绍

Gradle 定义 Gradle 是一个现代化的构建自动化工具&#xff0c;用于管理软件项目的构建过程和依赖关系。它通过一种灵活且强大的 DSL&#xff08;领域特定语言&#xff09;语法来描述项目的构建逻辑和任务&#xff0c;可以用于构建几乎任何类型的软件项目&#xff0c;从简单的应…

【Java数据结构】初识线性表之一:顺序表

使用Java简单实现一个顺序表 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储。在数组上完成数据的增删查改。 线性表大致包含如下的一些方法&#xff1a; public class MyArrayList { private int[] array; pri…

怎么将mkv视频格式转为mp4?这四种转换方法你肯定要试试!

怎么将mkv视频格式转为mp4&#xff1f;你是否曾被MKV格式的魅力深深吸引&#xff0c;仿佛踏入了一个充满奇幻色彩的多媒体秘境&#xff0c;那里&#xff0c;音频如溪流潺潺&#xff0c;视频似画卷铺展&#xff0c;字幕则如同夜空中最亮的星&#xff0c;三者交织成一场视听盛宴&…

【彻底禁用Windows系统的自动更新,让电脑使用更顺心!】

文章底部关注公众号&#xff1a;电脑维修小马 回复关键词即可获取软件及注册表&#xff1a;禁用更新 功能简介 自动更新是Windows系统的一项重要功能&#xff0c;旨在保持操作系统的安全性和最新状态。然而&#xff0c;对于许多用户来说&#xff0c;自动更新并不总是那么受欢迎…

ospf-lsa

区域间路由计算 OSPF 单区域带来问题 1. OSPF 网络规模扩大时&#xff0c;每个设备 LSDB 中的 LSA 数据变多&#xff0c;以及进行 SPF 计算时更加复杂&#xff0c; 增加设备的负担和性能损耗 2. 网络拓扑或者路由信息发生变化&#xff0c;网络中所有的设备需要更新…

linux:vi命令

vi * -p打开多个文件进行切换 .文件间切换 Ctrl6 //两文件间的切换 :bn //下一个文件 :bp //上一个文件 :ls //列出打开的文件&#xff0c;带编号 :b1~n //切换至第n个文件 对于用(v)split在多个窗格中打开的文件&#xff0c;这种方法只会在当前窗格中切换不同的文件Ctrl P&a…

c#验证输入语句是否带有sql入侵的方法

为了在C# WinForms中验证用户输入的数据是否包含SQL注入攻击语句&#xff0c;可以使用多种方法来检测和防止SQL注入。以下是几种常见的方法&#xff1a; 1. 使用参数化查询 参数化查询是防止SQL注入的最佳实践&#xff0c;它通过将用户输入作为参数传递给SQL查询&#xff0c;…

渔人杯——RE

贪吃蛇的秘密 修改代码后&#xff0c;报了一个错 # uncompyle6 version 3.9.1 # Python bytecode version base 3.7.0 (3394) # Decompiled from: Python 3.11.8 (tags/v3.11.8:db85d51, Feb 6 2024, 22:03:32) [MSC v.1937 64 bit (AMD64)] # Embedded file name: snake1.py…

2023 N1CTF-n1canary

文章目录 参考n1canary模板类和模板函数make_unique和unique_ptrstd::unique_ptr示例&#xff1a; std::make_unique示例&#xff1a; 结合使用示例 operator->getrandom逆向源码思路exp 参考 https://nese.team/posts/n1ctf2023/ n1canary 模板类和模板函数 template &…

TCP协议的三次握手和四次挥手(面试)

三次握手 首先可以简单的回答&#xff1a; 1、第一次握手&#xff1a;客户端给服务器发送一个 SYN 报文。 2、第二次握手&#xff1a;服务器收到 SYN 报文之后&#xff0c;会应答一个 SYNACK 报文。 3、第三次握手&#xff1a;客户端收到 SYNACK 报文之后&#xf…

内存巨头SK海力士正深化与TSMC/NVIDIA合作关系,开发下一代HBM

据BusinessKorea报道&#xff0c;内存巨头SK海力士正深化与台积电(TSMC)及英伟达(NVIDIA)的合作关系&#xff0c;并计划在9月的台湾半导体展(Semicon Taiwan)上宣布更紧密的伙伴关系。 SK海力士与台积电的合作历史已久。2022年&#xff0c;台积电在其北美技术研讨会上宣布成立O…

GRE详解:概念、架构、原理、搭建过程、常用命令与实战案例

我们将深入探讨如何在 Linux 上设置 GRE&#xff08;Generic Routing Encapsulation&#xff0c;通用路由封装&#xff09;。本文将涵盖 GRE 的定义、架构、原理、应用场景、常见命令体系&#xff0c;并通过详细的实战模拟展示如何在 Linux 系统上实际操作。希望通过这篇文章&a…

FlyDeliver践行社会责任,推动绿色物流发展

近日, 在追求商业成功的同时,FlyDeliver(FD配送)始终不忘践行社会责任。公司积极响应国家环保与可持续发展的号召,致力于推动绿色物流的发展。FlyDeliver(FD配送)在配送过程中积极采用低碳环保的运输方式,减少对环境的影响。同时,公司还积极参与各类公益活动,为社会献上爱心与力…

a-table(Ant Design Vue) 滚动到指定行位置

在使用 a-table 组件时&#xff0c;如果你想滚动到指定的行位置&#xff0c;可以通过访问内部的表格元素并调整其 scrollTop 属性来实现。以下是一个基于 Vue 和 Ant Design Vue 的例子&#xff0c;演示如何滚动到指定行位置&#xff1a; <template><a-table :column…

脉脉高聘:面对薪资福利减少,超40%职场人自动缩短工时

近日&#xff0c;脉脉高聘人才智库发布《2024职场生存洞察》&#xff08;下称《洞察》&#xff09;。 数据显示&#xff0c;2024上半年&#xff0c;新经济行业求职压力居高不下&#xff0c;人才供需比达到1.97&#xff0c;相当于2个人竞争1个岗位。求职压力也让职场人心态趋于…

vivado EQUIVALENT_DRIVER_OPT、EXCLUDE_PLACEMENT

Vivado工具将所有逻辑上等效的信号的驱动程序合并为单个驱动程序 在逻辑优化过程中指定-merge_equivalent_drivers选项时 &#xff08;opt_design&#xff09;。请参阅《Vivado Design Suite用户指南&#xff1a;实施》中的此链接 &#xff08;UG904&#xff09;[参考文献20]了…

windows下安装和使用nacos

概述 Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服务发 现、服务配置、服务元数据及流且管理 Nacos官方文档&#xff1a;https://nacos.io/zh-cn/docs/quick-start.html Nacos下载地址&#xff1a;https://n…

react获取访问过的路由历史记录

看了下&#xff0c;好像没有很好的解决方案&#xff0c;之前的useHistory现在也用不了了&#xff0c; chatgpt说使用useMatch&#xff0c;也报错 看了下浏览器原生的。本来浏览器就会限制这个histroy的读取&#xff0c;只能获取length https://developer.mozilla.org/zh-CN/…

小程序问题

1.获取节点 wx.createSelectorQuery() wx.createSelectorQuery().in(this) //组件中加in(this)&#xff0c;不然获取不到 2.使用实例 wx.createSelectorQuery().in(this).select(#share).fields({node: true,size: true}).exec(async (res) > {const canvas res[0].node;…

java org.aeonbits.owner库介绍

org.aeonbits.owner 是一个用于简化Java应用程序配置管理的库。它通过使用接口和注解来定义和读取配置,使得配置管理更加简洁和类型安全。以下是对这个库的一些主要特性和功能的介绍: 主要特性 类型安全的配置: OWNER 库允许开发者使用接口定义配置,从而提供了编译时的类型…