zoukankan      html  css  js  c++  java
  • 167

    解法1,利用二分查找,对第一个i,去剩下的有序数组中查找target-numbers[i]

    class Solution {
        public int[] twoSum(int[] numbers, int target) {
            int[] res=new int[2];
            for(int i=0;i<numbers.length;i++)
            {
                int find=binarySearch(numbers,i+1,numbers.length-1,target-numbers[i]);
                if(find!=-1)
                {
                    res[0]=i+1;
                    res[1]=find+1;
                }
            }
            return res;
        }
        public int binarySearch(int[] arr,int l,int r,int target)
        {
            if(l<=r)
            {
                 int mid=l+(r-l)/2;
                if(arr[mid]==target)
                    return mid;
                 else if(arr[mid]>target)
                     return binarySearch(arr,l,mid-1,target);
                else
                    return binarySearch(arr,mid+1,r,target);
            }
             else
                 return -1;
            
        }
    }

    //解法2,碰撞指针

    class Solution {
        public int[] twoSum(int[] numbers, int target) {
            int[] res=new int[2];
            int i=0,j=numbers.length-1;
            while(i<j)
            {
                if(numbers[i]+numbers[j]==target)
                {
                    res[0]=i+1;
                    res[1]=j+1;
                    break;
                }
                else if(numbers[i]+numbers[j]<target)
                    i++;
                else
                    j--;
            }
            return res;
        }
    }

  • 相关阅读:
    分布式缓存重建并发冲突和zookeeper分布式锁解决方案
    C# Datatable、DataReader等转化json
    OpenResty部署nginx及nginx+lua
    zookeeper+kafka集群的安装
    缓存数据生产服务的工作流程
    实现缓存与数据库双写一致性保障
    eclipse不提示问题
    Redis 多级缓存架构和数据库与缓存双写不一致问题
    代码这样写更优雅(Python版)
    java string.getBytes(“UTF-8”) javascript equivalent
  • 原文地址:https://www.cnblogs.com/cold-windy/p/11252916.html
Copyright © 2011-2022 走看看