LC-Two Sum II - Input array is sorted

406 篇文章 0 订阅
69 篇文章 0 订阅
class Solution(object):
    def twoSum(self, numbers, target):
        """
        :type numbers: List[int]
        :type target: int
        :rtype: List[int]
        """
        start = 0
        end = len(numbers) - 1
        while numbers[start] + numbers[end] != target:
            if numbers[start] + numbers[end] > target:
                end -= 1
            else:
                start += 1
        return start + 1, end + 1



Sol = Solution()
print Sol.twoSum([2,7,11,15], 9)

0,稍作参考的代码
1,题目要求:
Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.

The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.

You may assume that each input would have exactly one solution and you may not use the same element twice.

Input: numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2
2,一开始暴力操作,结果超时,不可行。
然后想到从离target最接近的数值位置开始查找,但是从找到numbers中存在的接近数字,以及再探查,又比较繁琐。
因此利用从两边向中间探查的方法,这样可以有效缩短探查的次数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个开源的Java开发框架,可以用来简化和加速Java应用程序的开发。它提供了很多开箱即用的特性和功能,包括对延时队列的支持。 延时队列是一种可以按照一定的时间顺序处理任务的队列,其中任务会在一定的延时时间后被执行。Spring Boot可以利用基于sorted-set的数据结构来实现延时队列。 在Spring Boot中,可以使用Redis作为存储延时队列的后端。Redis是一个开源的内存数据结构存储系统,支持多种数据结构,包括sorted-set。Sorted-set是Redis的一种有序集合数据结构,可以根据元素的score值进行排序。 要实现基于sorted-set的延时队列,可以将任务的执行时间作为score值,将任务的内容作为value值,将任务存储在sorted-set中。当一个任务需要被执行时,可以通过定时任务或者其他方式,定时从sorted-set中获取score值小于当前时间的任务,并进行处理。处理完成后,可以从sorted-set中删除该任务。 基于sorted-set的实现延时队列有以下几个优点: 1. 实现简单:利用Redis的sorted-set数据结构,可以直接存储和获取有序的任务。 2. 高效性能:Redis是一个高性能的内存数据库,可以快速处理大量的任务。 3. 数据持久化:Redis可以将数据持久化到磁盘,保证任务的可靠存储。 总结来说,Spring Boot可以利用Redis的sorted-set数据结构来实现基于sorted-set的延时队列。这种实现简单高效,可以保证任务按照一定的延时顺序进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值