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

双指针【1】两数之和基础版 归并排序

基础两数之和

给定递增序列,输出所有和为k的种数

#include <iostream>
#include <vector>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=100001;int n,m,k,num1[N],num2[N]; 
int sum2()
{int i=0,j=n-1,ans=0;while(i<j){if(num1[i]+num1[j]==k) {ans++;i++;j--;}else{if(num1[i]+num1[j]<k) i++;else j--;}}return ans;
}int main()
{//printf("%lf",(double)9/2);scanf("%d",&n);scanf("%d",&k);for(int i=0;i<n;i++) scanf("%d",&num1[i]); printf("%d",sum2());
}

归并排序

 需要会写合并两个序列(双指针),上一节试过。

使用递归

这个代码有点问题

#include <iostream>
#include <vector>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=10001;int n,m,k,num1[N],num2[N],ans[N]; 
void merge(int a[],int left,int c,int d,int right)
{int i=left;int j=d;int b=0;while(i<=c && j<=right ){if(a[i]<=a[j]){//printf("一%d%d",b,a[i]);ans[b]=a[i];i++;b++;}else{//printf("二%d%d",b,a[j]);ans[b]=a[j];j++;b++;}}
//	for(int k=0;k<b;k++)printf("!%d",ans[k]);if(i<=c){for (int k=i;k<=c;k++){ans[b]=a[k];b++;}}else{for(int k=j;k<=right;k++){ans[b]=a[j];b++;}}for (int k=left;k<=right;k++)
{a[k]=ans[k-left];//!!!!!!一开始写的a[k]=ans[k]找了半天错误呜呜呜呜呜呜
//printf("!%d!",a[k]);}	//printf("三"); 
}
void mergesort(int left,int right,int a[])
{
int l=left+(right-left)/2;
if(right>left) {//printf("?");
mergesort(left,l,a);
mergesort(l+1,right,a);	
merge(a,left,l,l+1,right);
}}int main()
{//printf("%lf",(double)9/2);
//int num3[]={2,1};
//merge(num3,0,0,1,1);
//	for(int i=0;i<5;i++) printf("%d",num3[i]); scanf("%d",&n);for(int i=0;i<n;i++) scanf("%d",&num1[i]); mergesort(0,n-1,num1);for(int i=0;i<n;i++) {printf("%d",num1[i]); if(i<n-1) printf(" ");}
}

 

相关文章:

  • 【LC刷题】DAY09:232 225 20 1047
  • 考研计组chap3存储系统
  • Python爬虫实现“自动重试”机制的方法(2)
  • uniapp 展示地图,并获取当前位置信息(精确位置)
  • 《web应用技术》第十一次作业
  • Postman接口测试工具详解
  • 【逻辑回归】和【线性回归】的区别和联系-九五小庞
  • 【git使用四】git分支理解与操作(详解)
  • 快手爬票概述
  • node设置镜像源详细教程
  • SpringMVC的工作流程
  • 编程App软件优化是什么
  • 【知识点】std::thread::detach std::lock_guard std::unique_lock
  • 【CT】LeetCode手撕—121. 买卖股票的最佳时机
  • 在不使用js在情况下只用css实现瀑布流效果
  • [译]Python中的类属性与实例属性的区别
  • 【comparator, comparable】小总结
  • ➹使用webpack配置多页面应用(MPA)
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • angular学习第一篇-----环境搭建
  • C++类的相互关联
  • go语言学习初探(一)
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Twitter赢在开放,三年创造奇迹
  • Vue 动态创建 component
  • vue自定义指令实现v-tap插件
  • zookeeper系列(七)实战分布式命名服务
  • 基于遗传算法的优化问题求解
  • 你不可错过的前端面试题(一)
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 双管齐下,VMware的容器新战略
  • 译米田引理
  • 怎么把视频里的音乐提取出来
  • 栈实现走出迷宫(C++)
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #ifdef 的技巧用法
  • #includecmath
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (52)只出现一次的数字III
  • (Python) SOAP Web Service (HTTP POST)
  • (第一天)包装对象、作用域、创建对象
  • (四)linux文件内容查看
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (正则)提取页面里的img标签
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .考试倒计时43天!来提分啦!
  • @Documented注解的作用
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [20150629]简单的加密连接.txt
  • [AIGC] CompletableFuture的重要方法有哪些?
  • [ASP]青辰网络考试管理系统NES X3.5
  • [BSGS算法]纯水斐波那契数列