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

国产安卓开发工具产品seo基础优化

国产安卓开发工具,产品seo基础优化,简历app制作软件,做网站的边框一、动态链表 - list (了解) new 和 delete 是非常耗时的操作 在算法比赛中,一般不会使使用 new 和 delete 去模拟实现一个链表。 而且STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不高,竞赛…

一、动态链表 - list (了解)

new 和 delete 是非常耗时的操作
在算法比赛中,一般不会使使用 new 和 delete 去模拟实现一个链表。
而且STL 里面的 list 的底层就是动态实现的双向循环链表,增删会涉及 new 和 delete,效率不高,竞赛中一般不会使用,这里了解一下即可。

1.1 创建 list

包含头文件<list>  , 使用方法和vector 差不多

#include <iostream>
#include <cstdio>
#include <list>
using namespace std;int main()
{list<int> lt;//创建一个存储int 类型的链表 return 0;
}

1.2 push_front/push_back

1) push_front : 头插

2)push_back:尾插

时间复杂度:O(1)

#include <iostream>
#include <cstdio>
#include <list>
using namespace std;void print(list<int>& i)
{for(auto e:i){cout << e << " " ;}cout << endl;
}int main()
{list<int> lt;//创建一个存储int 类型的链表 //尾插for(int i = 1;i<=5 ;i++){lt.push_back(i); print(lt);} //头插for(int i = 1;i <= 5 ; i++){lt.push_front(i);print(lt); } return 0;
}

1.3 pop_front / pop_back

1)pop_front : 头删

2)pop_back:尾删

时间复杂度:O(1)

	  //头删for(int i = 1;i<=6 ; i++){lt.pop_front(); } print(lt);//尾删 for(int i = 1;i<=2;i++){lt.pop_back() ;}print(lt);

1.4 所有测试代码

#include <iostream>
#include <cstdio>
#include <list>
using namespace std;void print(list<int>& i)
{for(auto e:i){cout << e << " " ;}cout << endl;
}int main()
{list<int> lt;//创建一个存储int 类型的链表 //尾插for(int i = 1;i<=5 ;i++){lt.push_back(i); print(lt);} //头插for(int i = 1;i <= 5 ; i++){lt.push_front(i);print(lt); } //头删for(int i = 1;i<=6 ; i++){lt.pop_front(); } print(lt);//尾删 for(int i = 1;i<=2;i++){lt.pop_back() ;}print(lt);return 0;
}

二、算法题

2.1 排列顺序

B3630 排队顺序 - 洛谷

#include <iostream>
#include <cstdio>
using namespace std;const int N = 1e6 + 10;
int n,h;
int ne[N];int main()
{cin >> n;for(int i = 1;i<= n ; i++){cin >> ne[i];}cin >> h;//遍历链表for(int i = h;i;i = ne[i]){cout << i << " ";} return 0;
}

2.2 单向链表

#include <iostream>
#include <cstdio>
using namespace std;const int N = 1e5 + 10;
const int M = 1e6 + 10;//链表
int h,id,e[N],ne[N];
int mp[M];//mp[i]用来标记i 这个元素存储再什么位置 
int main()
{int q; cin >> q;//初始化id++;e[id] = 1;mp[1] = id; while(q--){int op,x,y;cin >> op >> x;int p = mp[x];//x 存的位置 if(op == 1)//尾部插入 {cin >> y;id++;e[id] = y;ne[id] = ne[p];ne[p] = id;mp[y] = id;//标记 y 这个位置 }else if(op == 2){cout << e[ne[p]] << endl;}else//删除 x 后面的元素 {ne[p] = ne[ne[p]];}}return 0;
}

2.3 队列安排

P1160 队列安排 - 洛谷

#include <iostream>
#include <cstdio>
using namespace std;const int N = 1e5 + 10;
//双向链表 
int pre[N],ne[N],h;int n,m;
bool st[N];//st[i] 表示 i 这个同学是否出队 
int main()
{cin >> n;//初始化pre[1] = h;ne[h] = 1;for(int i = 2;i<=n ; i++){int k,p;cin >> k >> p;if(p == 0){//i 放在 k 的左边ne[i] = k;pre[i] = pre[k];ne[pre[k]]	= i;pre[k] = i;}else//i 放在 k 的右边 {pre[i] = k;ne[i] = ne[k];pre[ne[k]] = i;ne[k] = i;}}cin >> m;while(m--){int x;cin >> x;if(st[x]) continue;ne[pre[x]] = ne[x];pre[ne[x]] = pre[x];st[x] = true;//表示X已经删除 }for(int i = ne[h];i ; i = ne[i]){cout << i << " ";}return 0;
} 

 

2.4 约瑟夫问题

P1996 约瑟夫问题 - 洛谷

#include <iostream>
#include <cstdio>
using namespace std;const int N = 110;
int n,m,ne[N];int main()
{cin >> n >> m;//创建循环链表for(int i = 1 ; i < n ; i++){ne[i] = i + 1;	} ne[n] = 1;//模拟游戏过程int t = n;for(int i = 1;i<=n;i++)//执行n次出圈操作 {for(int j = 1; j < m ; j++){t = ne[t];}cout << ne[t] << " ";ne[t] = ne[ne[t]];} 
}

http://www.dtcms.com/wzjs/43158.html

相关文章:

  • 看网红直播做爰的网站美业推广平台
  • 网站建设目的意义外链互换平台
  • o2o分销系统网站建设今日头条新闻最新疫情
  • 网站建设客户分析seo官网
  • 怎样做网站服务器武汉百度信息流广告
  • 合肥做公司网站一般多少钱网络培训心得体会
  • 帮别人做网站赚多少钱汕头网站制作设计
  • 深圳工业设计展2022网站优化排名软件推广
  • 微信微网站开通在百度平台如何做营销
  • 网站备案加急平台推广公司
  • 个人网站备案建设方案书使用最佳搜索引擎优化工具
  • 高端网站建设谷美今日国际新闻最新消息
  • 武汉单位做网站深圳网络优化推广公司
  • 大连网站制作的公司seo企业建站系统
  • 创办免费企业网站关键词筛选工具
  • 网站图片左右滚动惠州seo外包公司
  • 网站为什么做版心限制软文300字介绍商品
  • 青岛即墨网站开发优化快速排名公司
  • 网站制作网站价格seo网站优化工具大全
  • 什么是网站名google搜索
  • 阿里云突发性能适用于做网站吗宁波网络推广公司有哪些
  • 网站建设时间规划竞价广告是什么意思
  • 专门做品牌折扣的网站青岛seo计费
  • 网站建设的技术指标河源今日头条新闻最新
  • 网站开发需要提供哪些资料快速建站哪个平台好
  • 清河网站制作网络营销的方式有几种
  • 改图网网站谁做的如何分步骤开展seo工作
  • 青岛做网站的大公司有站长工具网站备案查询
  • 广州软件制作公司谷歌seo技巧
  • 网上做外贸都有哪些网站百度搜索app免费下载