当前位置: 首页 > news >正文

正版网站设计制作小红书流量推广

正版网站设计制作,小红书流量推广,重庆网站建设公司多少钱,js网站记住密码怎么做力扣学习笔记——283. 移动零 题目描述 https://leetcode.cn/problems/move-zeroes/description/?envTypestudy-plan-v2envIdtop-100-liked 给定一个数组 nums#xff0c;编写一个函数将所有 0 移动到数组的末尾#xff0c;同时保持非零元素的相对顺序。 请注意 study-plan-v2envIdtop-100-liked 给定一个数组 nums编写一个函数将所有 0 移动到数组的末尾同时保持非零元素的相对顺序。 请注意 必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出: [0] 我的解答 我的思路就是倒序迭代判断元素是否是0然后删除再在最后面新增。 class Solution { public:void moveZeroes(vectorint nums) {if (0nums.size()){std::couterror nums isize is 0!std::endl;return;}for(int inums.size()-1;i-1;--i){if (0nums[i]){auto it nums.begin() i;nums.erase(it);nums.push_back(0);}}} };速度很快的一个解法——使用swap交换 class Solution { public:void moveZeroes(std::vectorint nums) {int cur 0, dest -1;while (cur nums.size()){ if (nums[cur]){std::swap(nums[dest], nums[cur]);}cur;}} };我自己根据这个方式写的 void moveZeroes(std::vectorint nums) {//有任意一个非零值就往左边第一个非零值后一位移动int un_zero_index 0;for (int i 0; inums.size(); i) {if ( nums[i] ! 0){std::swap(nums[i], nums[un_zero_index]);un_zero_index;}}}全部代码 #include iostream #include vector #include algorithm #include iostream #include unordered_map #include stringclass Solution { public:void moveZeroes(std::vectorint nums){if (0 nums.size()){std::cout error nums isize is 0! std::endl;return;}for (int i nums.size() - 1; i -1; --i){if (0 nums[i]){auto it nums.begin() i;nums.erase(it);nums.push_back(0);}}} };int main() {std::vectorint nums{0, 0, 0, 3, 12};Solution test;test.moveZeroes(nums);//打印std::vectorint numsfor (auto num : nums){std::cout muns is: num std::endl;}return 0; }知识点 C std::swap详细解释 std::swap 是 C 标准库中的一个函数模板位于 头文件中。它用于交换两个对象的值。 std::swap 的函数原型如下 template class T void swap( T a, T b ); std::swap 接受两个参数 a 和 b它们可以是任意类型的引用。通过调用 std::swapa 和 b 的值会被交换。 以下是一个示例代码演示如何使用 std::swap 交换两个变量的值 #include iostream #include algorithmint main() {int a 5;int b 10;std::cout 交换前a a , b b std::endl;std::swap(a, b);std::cout 交换后a a , b b std::endl;return 0; }在上面的示例中我们创建了两个整数变量 a 和 b并将它们分别初始化为 5 和 10。然后我们调用 std::swap(a, b) 来交换它们的值。最后我们打印出交换后的结果。 std::swap 的实现会根据对象的类型使用最有效的交换方式。对于内置类型如整数、浮点数等它使用一种临时变量的方式进行交换。对于自定义类型可以通过重载 operator 或提供自定义的交换函数来实现高效的交换操作。 需要注意的是std::swap 是一个通用的交换函数可以用于多种类型的对象。它是通过传引用的方式工作因此可以直接修改传入的对象。这使得 std::swap 在交换大型对象时更高效因为它避免了复制对象的开销。 总结而言std::swap 是一个方便且高效的函数模板用于交换两个对象的值。它是 C 标准库提供的一个常用工具函数可以在许多情况下简化代码并提高性能。 以下是一个使用 std::swap 的示例代码针对 std::vector 对象进行值交换 #include iostream #include vector #include algorithmint main() {std::vectorint vec1 {1, 2, 3};std::vectorint vec2 {4, 5, 6};std::cout 交换前 std::endl;std::cout vec1: ;for (int num : vec1) {std::cout num ;}std::cout std::endl;std::cout vec2: ;for (int num : vec2) {std::cout num ;}std::cout std::endl;std::swap(vec1, vec2);std::cout 交换后 std::endl;std::cout vec1: ;for (int num : vec1) {std::cout num ;}std::cout std::endl;std::cout vec2: ;for (int num : vec2) {std::cout num ;}std::cout std::endl;return 0; }在上面的示例中我们创建了两个 std::vector 对象vec1 和 vec2并分别初始化它们的元素。然后我们调用 std::swap(vec1, vec2) 来交换两个向量的值。最后我们打印出交换后的结果。 std::swap 在交换 std::vector 对象时会交换它们的内部存储而不是逐个元素地交换。这样可以避免复制大量元素的开销提高交换的效率。 需要注意的是std::swap 可以用于交换任意类型的对象不仅限于 std::vector。无论是内置类型还是自定义类型只要满足可复制或可移动的要求都可以使用 std::swap 进行值交换。 要交换一个 std::vector 结构中的第3个元素和第5个元素可以使用 std::swap 函数来交换它们的值。 以下是一个示例代码演示如何交换 std::vector 结构中的元素 #include iostream #include vector #include algorithmint main() {std::vectorint vec {1, 2, 3, 4, 5};std::cout 交换前 std::endl;for (int num : vec) {std::cout num ;}std::cout std::endl;std::swap(vec[2], vec[4]);std::cout 交换后 std::endl;for (int num : vec) {std::cout num ;}std::cout std::endl;return 0; }在上面的示例中我们创建了一个 std::vector 对象 vec并初始化它的元素。然后我们使用 std::swap 函数来交换 vec 中的第3个元素和第5个元素即 vec[2] 和 vec[4]。最后我们打印出交换后的结果。
http://www.sadfv.cn/news/147922/

相关文章:

  • 手机网站怎样做传世网站建设
  • 网站被抄袭公众号怎么制作投票活动
  • 如何建设运输网站建设网银怎么提高转账限额
  • 淘客优惠券推广网站怎么做centos7装wordpress
  • 深圳市鸿运通网站建设赣州
  • 为什么实验楼网站上做实验这么卡dw软件个人简历网站怎么做
  • 徐州网站建设外包自定义wordpress的字体大小
  • 受欢迎的网站开发网站怎么做七牛云加速
  • kesion系统做网站教程建设银行网站首页打
  • 长沙网站开软件ui设计软件
  • 贵州中航建设集团网站电子商务网站开发模块流程图
  • 高校网站建设管理制度大型网站开发公司
  • 有哪些做应援的网站找做网站技术人员
  • 网站建设程序代码2017年到2018年建设的网站
  • 兑换网站建设上饶公司做网站
  • 做网站语言学什么有没有卖设计的网站
  • 网站设计大概多少钱网页游戏排行榜2011
  • 免费做网站公司哪家好wordpress网店适合
  • 高端品牌网站建设是什么邵阳市建设局网站首页
  • 文山做网站yunling88wordpress过滤器插件6
  • 济宁城乡住房建设网站低价网站建设哪家便宜
  • 百度推广网站必须备案吗什么是百度权重
  • 招聘网站做销售商标大全 logo
  • 网站平台规划上海外包公司排行
  • 鲅鱼圈做网站wordpress加载视频教程
  • 番禺区网站建设WordPress只在手机
  • 网站备案怎么那么慢wordpress order
  • 有固定ip怎么建设网站雄县阿里巴巴网站建设
  • 家具东莞网站建设做导航网站有发展吗
  • 设计网站策划书东莞连锁品牌设计制作