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

《巧用 vector 解析 OJ 经典算法:从异或寻数到杨辉三角》


🔥个人主页:K 旺仔小馒头

🍉学习方向:C/C++方向学习者

📖个人专栏:《C语言》《数据结构与算法》《C++知识分享》《C语言实战编程》《算法题从优选到贪心的解题技巧》

⭐️人生格言:‌“何时葡萄先熟透,你要静候再静候”



前言:

在算法刷题与 OJ 实战中,vector 是 C++ 开发者的核心工具之一。它兼具数组的高效访问与动态扩容的灵活性,成为实现复杂数据结构、优化算法逻辑的关键载体。本文解析的异或找唯一数生成杨辉三角两题,便借助 vector 实现了简洁高效的解法,既凸显算法特性,也展现了 vector 在 OJ 场景下的实用价值。


一. 只出现一次的数字【难度:简单】

描述:

给你一个非空整数数组 nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

解析:

异或^ 就可以解决这个问题

class Solution {
public:int singleNumber(vector<int>& nums) {int value = 0;for(auto e : nums){value ^= e;}return value;}
};

二. 杨辉三角【难度:简单】

描述:

给定一个非负整数 numRows生成「杨辉三角」的前 numRows 行。

在「杨辉三角」中,每个数是它左上方和右上方的数的和。

解析:

1. 涉及resize / operator[] 

2. 核心思想:找出杨辉三角的规律,发现每一行头尾都是1,中间第[ j ]个数等于上一行[ j-1 ]+ [ j ]

class Solution {
public:vector<vector<int>> generate(int numRows) {vector<vector<int>> vv;//行vv.resize(numRows,vector<int>());//列for(size_t i = 0; i < numRows; i++){vv[i].resize(i+1,1);}for(size_t i = 2; i < vv.size(); i++){for(size_t j = 1; j < vv[i].size()-1; j++){vv[i][j] = vv[i-1][j-1] + vv[i-1][j];}}return vv;}
};

结尾:

往期精选:

《string 类模拟实现(收尾):传统与现代写法对比及底层机制探析》

《C++ vector核心接口全解:从构造到增删查改,一篇掌握所有常用操作》

《vector 底层模拟实现(上):核心机制全解析 + 迭代器失效深度剖析》

结语:两题的求解的过程,充分印证了 vector 在 OJ 中的适配性与优势。它简化了数据存储与访问逻辑,让开发者能聚焦算法核心规律,无需冗余处理内存分配问题。掌握 vector 的灵活运用,是提升 OJ 解题效率、优化代码质量的重要基础,为应对更复杂的算法挑战筑牢根基。

http://www.dtcms.com/a/586009.html

相关文章:

  • LoRA技术原理详解:大模型高效微调的“低秩”智慧
  • Rust中数组简介
  • 外国做足球数据网站学校网站设计方案模板
  • 68网页设计欣赏seo搜索排名优化是什么意思
  • Epoll 服务器实战教学:从 Poll 到高性能事件驱动模型
  • A*改进算法D* 和 LPA* 算法介绍和算法特点对比详解
  • 第十二章 网络地址转换
  • 郑州市东区建设环保局官方网站wordpress 仿煎蛋主题
  • Linux 中的 Cron:管理员完整指南 + 隐藏问题
  • 南昌做网站建站的小礼品网络定制
  • 建筑网站推荐百度小程序云开发
  • Apls-day4
  • 国家网信办发布的第十四批深度合成算法备案综合分析报告
  • 动感网站模板网站百度搜不到了
  • 赚钱软件哪个赚钱多又快Wordpress校内优化
  • 小项目:猜数字游戏
  • 网易门户网站建设wordpress 非插件cdn
  • “征服式学习”提示词工具箱
  • 【ZeroRange WebRTC】WebRTC 访问控制:最小权限与短期凭证(深入指南)
  • 前端-表格
  • 快速排名网站怎么做多语言网站
  • 墨境 | 水墨风动作Roguelite游戏
  • 深度学习:python人脸表情识别系统 情绪识别系统 深度学习 神经网络CNN算法 ✅
  • Similarity and Dissimilarity Measures|相似性和不相似性度量
  • 树莓派学习资料共享
  • 我们来学AI编程 -- 深入分析Lingma后台程序
  • Rootkit检测利器rkhunter详解:原理、实践与渗透测试应用
  • 济南制作网站公司哪家好鱼鱼cms
  • 专门做自助游攻略的网站是哪个济南品牌网站建设价格低
  • 网站开发设计创建一个餐饮公司的模板