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

顺序表vector--------练习题2题解

前言

在刷顺序表有关题目的时候遇到了一些有关面向对象的类的相关问题,也是有点意外收获了,现在分享一下。

代码

class Solution {
public:int arr[100001];int findMaxConsecutiveOnes(vector<int>& nums) {int max=0;int j=0;for(int i=0;i<nums.size();i++){if(nums[i]==1){arr[j]++;cout<<"arr["<<j<<"]="<<arr[j]<<endl;}else{j++;}}j++;int i=0;while(j--){if(arr[i]>=max){max = arr[i];// cout<<i<<endl;}i++;}return max;}
};

反思

考察知识点:顺序表vector.

踩的坑:

1.关于里面的j和i的值的问题,涉及循环次数错误和变量i定义位置错误导致结果异常等低级错误;

2.关于这个数组的声明位置,也有问题,我这里数组的目的是存储连续一的个数,但是反复调用以后,数组中的值并没有重新初始化,所以我要对这里特别解释说明一下;

可以优化的地方:可以不用数组,我们可以利用两个变量来实现这个存储的目的:

class Solution {
public:int findMaxConsecutiveOnes(vector<int>& nums) {int cnt=0;int bef=0;for(int i=0;i<nums.size();i++){if(nums[i]==1){bef+=1;if(bef>cnt){cnt = bef;}}else{bef=0;}}return cnt;}
};

这样的话是不是就简便了好多呢。

收获

这里讲一下那个类中的数组在成员函数里面定义与在成员函数外面定义的区别:

1.当数组在成员函数里面时,被看作是局部数组,默认是静态存储,也就是静态变量,不会因为函数的结束而销毁,就像是用static修饰了数组;

2.当数组在成员函数外面时,属于类的实例对象,每次创建实例化对象或者调用成员函数时都会自动初始化,所以不会留存上一次调用的值。

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

相关文章:

  • 后端开发 DTO-Entity-VO 转换模式详解
  • 做私人网站 违法设计制作生态瓶教学设计
  • snipaste免费版下载安装使用教程(附安装包)
  • 【openGauss】带有out参数的存储过程及自定义函数的重载测试
  • MATLAB高效算法实战技术文章大纲
  • 上海网站建设技术指导公司杭州知名的互联网公司
  • 从域名到网站网站建设报价单表格模板
  • 高效静电测试门禁通道闸成为静电的防线 蒙冬智能
  • 主流PD协议DRP芯片技术解析与核心优势
  • USB PD协议中的DRP技术:双向供电与数据传输的革新者
  • 局网站建设管理整改情况广西桂林
  • 从火情定位到隐患排查:三光吊舱助力救援模拟全流程
  • element-ui 2.x 及 vxe-table 2.x 使用 css 定制主题
  • 如何提高网站在搜索引擎中的排名如何建立网站视频教程
  • 广州网站建设网页设计百度地图排名可以优化吗
  • 网站做多久梧州网站设计制作服务至上
  • 凉山州住房和城乡建设厅网站王烨老师
  • Metrics Server 完整配置安装手册
  • 中小型企业建设网站六安政务中心网站
  • reactnative下拉选择
  • 操作系统基础·3 进程线程模型
  • CTFHub XSS通关2:存储型
  • 递归专题3 - 回溯算法十大类型
  • python全栈-数据分析软件tableau的使用
  • 交流电里的电子咋流动?不是往前跑,而是来回 “晃”
  • 做网站写代码怎么样免费网站建设基础步骤
  • 网站.cc域名网站常见结构有那些
  • 网上做兼职老师的正规网站搭建网站的步骤有哪些
  • python进阶教程10:面向对象、super()和元类
  • 大同建设银行保安招聘网站商品展示的网站源码