- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定一对起始距离和结束距离,如果两个停靠点重叠,则减少公交车数量。例如:
input n=4
{2,8},{6,10},{12,14},{12,20}
output:2
explanation:route {2,8} and {6,10} overlap so it can be reduced to 1 route as {2,10}
similarly route {12,14} and {12,20} overlap it can be merged to 1.
input n=4
{1,3} ,{7,9}, {4,6},{10,13}
output=4 since there is no overlapping
我的方法:我尝试对 vector<pair<int,int>>
进行排序按降序,插入stack<pair<int,int>>
并使用了计数器count
计算唯一路由并弹出堆栈检查条件,直到它变空。 尽管我的代码对我来说是 100% 正确的,但是当路由中没有重叠时它不会输出任何内容。,例如对于输入 n=4
, 路线: {1,3} ,{7,9}, {4,6},{10,13}
它不输出任何东西。寻求帮助来解决此类问题。
#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
using namespace std;
bool compare(pair<int,int>p1,pair<int,int>p2){
return p1.first>p2.first;
}
int main(){
int n;cin>>n;
vector<pair<int,int>>v;
for(int i=0;i<n;i++){
int u,w;
cin>>u>>w;
v.push_back(make_pair(u,w));
}
sort(v.begin(),v.end(),compare);
stack<pair<int,int>>st;
for(int i=0;i<v.size();i++){
st.push(v[i]);
}
//looking for help from here ,basically i dont understands why my code in stack fails
int count=0;
while (!st.empty()){
pair<int,int>y=st.top();
st.pop();
count++;
if(y.second>=st.top().first){
if(st.size()>0){
st.pop();
}
}
}
cout<<count;
}
最佳答案
您的错误在 if(y.second >= st.top().first)
。如果这里的 st
是空的呢?
#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
using namespace std;
bool compare(pair<int,int>p1,pair<int,int>p2){
return p1.first>p2.first;
}
int main(){
int n;cin>>n;
vector<pair<int,int>>v;
for(int i=0;i<n;i++){
int u,w;
cin>>u>>w;
v.push_back(make_pair(u,w));
}
sort(v.begin(),v.end(),compare);
stack<pair<int,int>>st;
for(int i=0;i<int(v.size());i++){
st.push(v[i]);
}
//looking for help from here ,basically i dont understands why my code in stack fails
int count=0;
while (!st.empty()){
pair<int,int>y=st.top();
st.pop();
count++;
if(st.size()>0){
if(y.second>=st.top().first){
st.pop();
}
}
}
cout<<count<<'\n';
}
只需将 if(st.size() > 0)
移到外面,您的代码就会正常运行。
关于c++ - 减少从一个城市到不同停靠点的公交车的重叠计数,我目前的方法可以优化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68791216/
如何将 CControlBar 派生窗口停靠到拆分窗口 (CSplitterWnd) 的中间?我希望在移动分离器时重新定位栏。 为了更清楚地说明我所追求的是什么,想象一下 Visual Studio(
我正在使用我认为是在 90 年代初开发的 MFC 代码。我被赋予了将软件带入 21 世纪的艰巨任务,使其能够在 Windows 7/8 之类的系统上运行。该应用程序面向众多平台,其中一个是 Windo
我有一个导航 View ,在导航 View 中我想在导航栏的右侧放置一个按钮 here is sencha fiddle My Fiddle is here 你可以看到我的菜单按钮,我希望该按钮位于右
我创建了以下 fiddle 来说明问题 http://jsfiddle.net/spjvo6g2/ 如何将activelist等子div停靠到父div的顶部垂直对齐
我是一名优秀的程序员,十分优秀!