vector的oj题

ops/2024/9/25 15:28:19/

1.只出现1次的数字

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

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

方法:异或

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

2.杨辉三角

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

如果是C语言

int** generate(int numRows, int* returnSize, int** returnColumnSizes) 

                                                       行数            每一行的数据个数

int** pp=(int*)malloc(sizeof(int*)*10;
for(int i=0;i<10;++i)
{pp[i]=(int*)malloc(sizeof(int)*(i+1); 
}
pp[i][j] 两个指针的解引用

C++实现:

vector<vector<int>> generate(int numRows) 

要想访问第i个第j列

vector<vector<int>> vv;vv[i][j]  是两个方括号的调用
vv[i]返回值是vector<int>对象  在加[]就是第j个位置的数据

解答:

class Solution {
public:vector<vector<int>> generate(int numRows) {vector<vector<int>> vv;vv.resize(numRows);//用resize因为要初始化一下for (size_t i = 0; i < vv.size(); i++) {vv[i].resize(i+1,0);//每一行开i+1个空间vv[i][0]=vv[i][vv[i].size()-1]=1;//这一行头和为为1}for(size_t i=0;i<vv.size();i++){for (size_t j=0;j<vv[i].size();j++){if(vv[i][j]==0){vv[i][j]=vv[i-1][j]+vv[i-1][j-1];}      }}return vv;}
};

3.电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

      

是一个全排列和深度优先遍历,本质就是一个多叉树的遍历

class Solution {const char* numStrArr[10]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public:void Combine(const string& digits,int i,vector<string>& ret,string combineStr)//const &拷贝代价大{if(i==digits.size()){ret.push_back(combineStr);return;}int num=digits[i]-'0';string str=numStrArr[num];for(auto ch:str) //依次取str里面字符{Combine(digits,i+1,ret,combineStr+ch);}}vector<string> letterCombinations(const string& digits) {vector<string> v;if(digits.empty())return v;string str;//组合出来的字符串Combine(digits,0,v,str);return v;}
};

digits就是数字串“258”   


http://www.ppmy.cn/ops/35925.html

相关文章

每日OJ题_DFS解决FloodFill⑦_力扣LCR 130. 衣橱整理(原剑指Offer13机器人的运动范围)

目录 力扣LCR 130. 衣橱整理&#xff08;原剑指Offer13机器人的运动范围&#xff09; 解析代码 力扣LCR 130. 衣橱整理&#xff08;原剑指Offer13机器人的运动范围&#xff09; LCR 130. 衣橱整理 难度 中等 家居整理师将待整理衣橱划分为 m x n 的二维矩阵 grid&#xff…

万里牛ERP集成金蝶K3(万里牛主管供应链)

源系统成集云目标系统 金蝶K3介绍 金蝶K3是一款ERP软件&#xff0c;它集成了供应链管理、财务管理、人力资源管理、客户关系管理、办公自动化、商业分析、移动商务、集成接口及行业插件等业务管理组件。以成本管理为目标&#xff0c;计划与流程控制为主线&#xff0…

虚拟机装CentOS镜像

起先&#xff0c;是先安装一个VM虚拟机&#xff0c;再去官方网站之类的下载一些镜像&#xff0c;常见镜像有CentOS镜像&#xff0c;ubantu镜像&#xff0c;好像还有一个树莓还是什么的&#xff0c;软件这块&#xff0c;日新月异&#xff0c;更新太快&#xff0c;好久没碰&#…

React Native支持Tailwind CSS 语法

React Native支持Tailwind CSS 语法 一、前沿背景 回想下我们平时按照官方的规范进行书写样式是什么样&#xff1f; 是像下面这样&#xff1a; const MyComponent () > {return (<View><Text style{{ fontSize: 20 }}>开发者演示专用</Text></View…

花一个月时间为 vue3 重制了 vue-styled-components

花一个月时间为 vue3 重制了 vue-styled-components 前言 styled-components 在 React 是一个超级热门的 css in js 工具库。其实 styled-components 也有 Vue 版本&#xff08;vue-styled-components&#xff09;&#xff0c;可惜的是只支持 Vue2&#xff0c;并且该项目已有…

《深入理解kafka-核心设计与实践原理》第三章:消费者

第三章&#xff1a;消费者 3.1 消费者与消费组 3.1.1 消费者(Consumer) 3.1.2 消费组(Consumer Group) 3.1.3 消息投递模式 3.2 客户端开发 3.2.1 必要的配置参数 3.2.2 订阅主题与分区 3.2.3 反序列化 3.2.4 消费消息 3.2.5 位移提交 3.2.5.1 offset 3.2.5.2 消费后的提交方式…

3D应用开发工具HOOPS与云计算:推动工程设计行业的数字化转型

关于云计算 在信息技术迅猛发展的今天&#xff0c;云计算已经成为企业进行数字化转型的重要推手。云计算通过互联网提供包括服务器、存储、数据库、网络、软件、分析和智能等在内的计算服务&#xff0c;这些服务通常以按需供应的方式提供&#xff0c;允许用户根据使用量进行付…

618好物节不知道买什么?快收下这份好物推荐指南!

随着618好物节的临近&#xff0c;你是否在为选择什么产品而犹豫不决&#xff1f;不用担忧&#xff0c;我精心准备了一份购物指南&#xff0c;旨在帮助你发现那些性价比高、口碑爆棚的商品。无论是科技新品还是生活小物件&#xff0c;这份指南都能帮你快速定位到那些值得投资的好…