1007. Search a value

2 篇文章 0 订阅
2 篇文章 0 订阅
Description
 
Write a generic function int find_lower_bound(T seq[], int n, const T& value). The function returns the index of the largest element in the given sequence that is less than the given value. If multiple elements satisfy, return the one with smallest index. Return -1 if no such element exists. You are ensured that the type T can be compared using operator '<'.
 
Your submitted source code should include the implementation of the find_lower_bound function template.
No main() function should be included.

 

// Problem#: 14401
// Submission#: 3726604
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
// All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <iostream>
#include<cstdlib>
#include<string>
using namespace std;
template<typename T>
int find_lower_bound(T seq[], int n, const T& value){
    int index=0;
    for(int i=0;i<n;i++){
                    if(seq[i]<value)  {index=i;break;}
           
            
            if(i==n-1){
                           return -1;
                           }
                           }
    for(int i=index+1;i<n;i++){
            
            if(seq[i]<value && seq[index]<seq[i]){
                            index=i;
                            
            }
            }
            return index;
}                                 


conclusion:嵌套循环的逻辑出现问题,比如如何判断seq中没有比value小的数    如果有立马break                              如果直到最后(i=n-1)了还没有退出循环,即认定seq中没有比value小的数  return -1  满足题目要求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值