61. 搜索区间

给定一个包含 n 个整数的排序数组,找出给定目标值 target的起始和结束位置。

如果目标值不在数组中,则返回[-1, -1]

 

样例

给出[5, 7, 7, 8, 8, 10]和目标值target=8,

返回[3, 4]

挑战 

时间复杂度 O(log n)

 

 

应该要第一时间反应到二分,就算没有想到看到这个时间复杂度也要想到了

总体思路就是用二分找到target再前后搜索下就行了

 1 vector<int> searchRange(vector<int> &A, int target) {
 2         // write your code here
 3         vector<int> res;
 4         if(A.empty() ||target < A[0] || target > A[A.size() - 1]){ 
 5             res.push_back(-1);
 6             res.push_back(-1);
 7             return res;  
 8         }  
 9         
10         int low=0,high=A.size();
11         int mid;
12         int start,end;
13         while(low<=high){
14             mid=low+(high-low)/2;
15             if(A[mid]==target){
16                 start=mid-1;
17                 end=mid+1;
18                 while (end < A.size() && A[end] == target) {
19                     end++;
20                 }
21                 while (start >= 0 && A[start] == target ) {
22                     start--; 
23                 }
24                 res.push_back(start + 1);
25                 res.push_back(end - 1);
26                 return res;
27             }
28             
29             if(A[mid]>target){
30                 high=mid-1;
31             }
32             else{
33                 low=mid+1;
34             }
35         }
36         res.push_back(-1);
37         res.push_back(-1);
38         return res; 
39     }

 

转载于:https://www.cnblogs.com/TheLaughingMan/p/8301439.html

<think>嗯,用户需要查找关于SPT61-FDR传感器的技术规格和相关驱动程序。首先,我得确认这个传感器的具体信息。根据用户提供的引用内容,SPT61-FDR是用于检测花盆土壤湿度的传感器,属于湿度检测模块。不过,这个型号可能不是一个广泛使用的标准型号,或者可能是某个厂商的特定命名。 首先,我应该检查是否有常见的传感器型号类似,比如SPT61可能是一个系列,而FDR可能代表Frequency Domain Reflectometry(频域反射法),这是一种测量土壤湿度的方法。不过,用户提到的型号是SPT61-FDR,我需要确认是否存在这个具体型号的公开资料。 接下来,考虑到用户提到的应用是基于STC90C516RD单片机的系统,可能这个传感器是通过模拟信号或数字信号与单片机通信。常见的土壤湿度传感器如FC-28或YL-69,它们通常输出模拟信号,但用户提到的SPT61-FDR可能不同。 由于公开资料有限,我需要建议用户可能的获取途径。首先,联系供应商或制造商是最直接的方式,他们通常能提供技术文档。其次,查找是否有开源项目或论坛讨论过这个传感器,比如在GitHub、Arduino论坛或者电子爱好者社区。另外,用户可能需要参考类似传感器的驱动程序,比如基于ADC读取的代码,或者使用UART/I2C通信的协议。 此外,用户可能需要了解传感器的电气特性,如工作电压、输出信号类型、量程等。如果找不到确切的型号资料,建议用户测试传感器的输出,例如使用万用表测量在不同湿度下的输出电压或电阻值,从而自行编写驱动程序。 需要注意的是,用户可能不具备深入电子测量的知识,因此需要提供一些基础的操作步骤,比如如何连接单片机、如何读取模拟信号,以及可能的校准方法。同时,提醒用户注意传感器的接口类型,是否需要上拉电阻,或者是否支持数字接口等。 最后,总结可能的步骤:联系供应商获取资料,搜索开源社区,参考类似传感器驱动,自行测试并编写驱动。同时,提供一些示例代码框架,帮助用户开始开发。</think>关于SPT61-FDR传感器的技术信息和驱动程序,根据文献描述[^1],以下是分步骤说明: 1. **技术规格推测** SPT61-FDR作为土壤湿度传感器: - 可能采用**电容式/FDR原理**(频域反射法),通过介电常数变化检测湿度 - 工作电压范围推测为$3.3V-5V$(适配单片机系统) - 输出信号可能为$0-3V$模拟电压或$PWM$波形 - 量程范围应覆盖植物适宜湿度区间(约$10\%-60\%$体积含水率) 2. **驱动程序开发指引** ```c // 基于STC90C516RD的示例代码框架 #include <reg52.h> void ADC_Init() { P1 = 0xff; // 设置ADC端口为高阻态 ADCON = 0x20; // 配置ADC控制寄存器 } unsigned int Read_Humidity() { ADCON |= 0x08; // 启动ADC转换 while (ADCON & 0x08); // 等待转换完成 return (ADDH << 2) | ADDL; // 返回10位ADC值 } void main() { ADC_Init(); while(1) { unsigned int humidity = Read_Humidity(); // 添加湿度判断与电磁阀控制逻辑 } } ``` 3. **关键获取途径** - 联系**深圳市盛普泰克电子**(SPT可能为其品牌缩写) - 搜索**FDR-61**或**SPT61**组合关键词 - 参考同原理传感器(如SM3002-S)的驱动方案
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值