博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer——面试题41:和为s的两个数字VS和为s的连续正数序列
阅读量:4087 次
发布时间:2019-05-25

本文共 1217 字,大约阅读时间需要 4 分钟。

bool FindNumbersWithSum(int data[], int length, int sum,                         int* num1, int* num2){    bool found = false;    if(length < 1 || num1 == NULL || num2 == NULL)        return found;    int ahead = length - 1;    int behind = 0;    while(ahead > behind)    {        long long curSum = data[ahead] + data[behind];        if(curSum == sum)        {            *num1 = data[behind];            *num2 = data[ahead];            found = true;            break;        }        else if(curSum > sum)            ahead --;        else            behind ++;    }    return found;}

void FindContinuousSequence(int sum){    if(sum < 3)        return;    int small = 1;     int big = 2;    int middle = (1 + sum) / 2;    int curSum = small + big;    while(small < middle)    {        if(curSum == sum)            PrintContinuousSequence(small, big);        while(curSum > sum && small < middle)        {            curSum -= small;            small ++;            if(curSum == sum)                PrintContinuousSequence(small, big);        }        big ++;        curSum += big;    }}void PrintContinuousSequence(int small, int big){    for(int i = small; i <= big; ++ i)        printf("%d ", i);    printf("\n");}

你可能感兴趣的文章
DirectX11 HLSL打包(packing)格式和“pad”变量的必要性
查看>>
DirectX11 光照演示示例Demo
查看>>
漫谈一下前端的可视化技术
查看>>
VUe+webpack构建单页router应用(一)
查看>>
Vue+webpack构建单页router应用(二)
查看>>
从头开始讲Node.js——异步与事件驱动
查看>>
Node.js-模块和包
查看>>
Node.js核心模块
查看>>
express的应用
查看>>
NodeJS开发指南——mongoDB、Session
查看>>
Express: Can’t set headers after they are sent.
查看>>
2017年,这一次我们不聊技术
查看>>
实现接口创建线程
查看>>
Java对象序列化与反序列化(1)
查看>>
心灵小品(1)
查看>>
HTML5的表单验证实例
查看>>
JavaScript入门笔记:全选功能的实现
查看>>
程序设计方法概述:从面相对象到面向功能到面向对象
查看>>
数据库事务
查看>>
JavaScript基础1:JavaScript 错误 - Throw、Try 和 Catch
查看>>