社区
C++ 语言
帖子详情
超时问题,我用vector写一直说超时,难道应该完全用数组自己写么
邪恶牛犊
2017-12-16 02:21:36
一开始该容器为空,有以下七种操作。
1 a从前面插入元素a
2 从前面删除一个元素
3 a从后面插入一个元素
4 从后面删除一个元素
5 将整个容器头尾翻转
6 输出个数和所有元素
7 对所有元素进行从小到大排序
...全文
582
9
打赏
收藏
超时问题,我用vector写一直说超时,难道应该完全用数组自己写么
一开始该容器为空,有以下七种操作。 1 a从前面插入元素a 2 从前面删除一个元素 3 a从后面插入一个元素 4 从后面删除一个元素 5 将整个容器头尾翻转 6 输出个数和所有元素 7 对所有元素进行从小到大排序
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
metohang
2017-12-21
打赏
举报
回复
这么多操作,用vector合适么.
躺着睡的蜗牛
2017-12-20
打赏
举报
回复
Vector在Debug下耗时间比较长, 试下Release,速度能快很多。
啊哈moment
2017-12-20
打赏
举报
回复
你这 “ 超时 ” 表达的是啥意思 ? 问题是什么?
幻夢之葉
2017-12-19
打赏
举报
回复
#include <algorithm> 5 将整个容器头尾翻转 std::reverse(vec.begin(), vec.end()); 7 对所有元素进行从小到大排序 std::sort(vec.begin(), vec.end());
sichuanwww
2017-12-19
打赏
举报
回复
list
codedoctor
2017-12-18
打赏
举报
回复
这种用list比较好吧,vector的话其实就相当于一个数组,删除末尾元素消耗很低,但是删除头元素或者中间元素的话就会很耗费时间,如果持续的删除有可能会超时。当需要对元素进行频繁的删除操作的时候,用list比较好
ma100
2017-12-17
打赏
举报
回复
1 a从前面插入元素a 就凭这一条,也不能用vector啊,起码得是list啊
ooolinux
2017-12-17
打赏
举报
回复
题目应该是让你自己实现这种数据结构。
海鸥软件
2017-12-16
打赏
举报
回复
你应该贴出代码来,让大家分析一下
leetcode算法题主函数如何
写
-LeetCode:LeetCode程序
leetcode算法题主函数如何
写
LeetCode LeetCode程序 ##NO.1 Two Sum 解题思路:首先用一个结构
数组
记录整个
数组
的数以及其原本所在的位置,然后对这个
数组
进行升序排列,再对排序之后的
数组
同时从两头查找,一头一尾相加,所得结果如果和目标整数和相等则即为找到,将之前记录的原本位置输出即可,如果相加之后的和大于目标整数和,则将尾部指针向前移一个,继续执行判断指针所指位置两数之和。如果相加之后的和小于目标整数和,则将头部指针向后移一个,继续执行判断指针所指位置两数之和。直到找到两数之和等于目标整数和为止。 注:时间复杂度是O(n),线性时间。其他一些方法可能会
超时
。之前我使用了C++的
vector
的find和distance函数来查找
vector
中的元素以及元素所在位置,发现
超时
了,可能跟这两个函数的效率有关。 ##NO.2 Add Two Numbers 这道题主要还是熟悉C++的链表操作,不算难。 1.首先同时遍历两个链表,对应位置的整数值相加,得到加和,如果加和小于10,则直接记录在新的加和链表中,如果加和大于等于10,则取个位数的值记录在新的加和链表中,
刷leetcode不用stl-leetcode:leetcode
刷leetcode不用stl leetcode 刷题 27 就地删除
数组
元素
vector
双指针法 72 最小编辑距离 20 括号匹配 栈的应用 127 单词接龙 BFS广度优先搜索 146 LRUCache list unordered_map<> 88 有序
数组
合并两个
vector
STL
vector
array 26 就地删除重复元素 直接用STL sort() unique() erase()做的 122 买卖股票的最佳时机 利润最大化就是每次波谷买入波峰卖出 189 旋转
数组
暴力法 一次挪一步 挪k次
超时
STL reverse() 217 判断是否存在重复元素 方法一 暴力法 时间复杂度 : O(n^2) 方法二 排序 136 找到只出现了一次的数字 先排序 如果在开头和中间找不到 那就是最后一个 这道题也可以用异或来做 详见具体的代码 350 两个
数组
的交集 unordered_map 存储其中一个nums作为字典 遍历另外一个nums 如果字典中有 就push到
vector
res 同时字典中的dict[val]-- 66 加一 测试用例越来越大了 逼得转变思
Netkiller Architect 手札
我们从小的教育就是如何拆分
问题
、解决
问题
,这样做显然会使复杂的
问题
变得更容易些。但是这带来一个新
问题
,我们丧失了如何从宏观角度看
问题
,分析
问题
,解决
问题
,对更大的整体的内在领悟能力。这导致了我们对现有...
leetcode走方格起点到终点-leetCode:日常LeetCode算法刷题
leetcode走方格起点到终点 LeetCode刷题 1. Category Difficulty Likes Dislikes algorithms Easy (49.47%) 9609 - Tags Companies 给定一个整数
数组
nums 和一个目标值 target,请你在该
数组
中找出和为目标值的那 两个 整数,并返回他们的
数组
下标。 你可以假设每种输入只会对应一个答案。但是,
数组
中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 1.1解法一:双重循环逐个遍历,时间复杂度O(n^2),但是时间
超时
了。没有通过。 #include<
vector
> #include
using namespace std; // @before-stub-for-debug-end /* * @lc app=leetcode.cn id=1 lang=cpp * * [1] 两数之和 */ // @lc code=start
vector
与
数组
的使用指南
前言 作为c++ stl常用的容器之一,
vector
的使用频率
一直
很高,由于具备一系列的操作函数,使得它能很方便的存储和读
写
,所以
vector
在解题时应用很广。 很多时候,在能够使用
vector
和
数组
的情况之下,我们会使用
vector
,因为它的操作函数确实方便。 虽然在使用时,也会思考
vector
的时间复杂度到底相对
数组
有多大。 但是由于
写
过的题目,基本不会因为
数组
和
vector
超时
(或者
说
可能是没发现),因此
一直
搁置。 最近我力扣做题,注意到一个
问题
。 同样一道题,使用
数组
和使用
vector
,效率相差很大
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章