前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode(一)

LeetCode(一)

作者头像
Rekent
发布2018-09-04 15:21:01
2630
发布2018-09-04 15:21:01
举报
文章被收录于专栏:日常分享日常分享

Q&A ONE

Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].

public class Solution {
        public int[] twoSum(int[] nums, int target) {
                int solu[];
                for(int i=0;i<nums.length;i++){
                    for(int j=i+1;j<nums.length;j++){
                        if(nums[i]+nums[j]==target){
                           solu= new int[]{i, j};
                            return solu;
                        }
                    }
                }
            return null;
        }
    }

Q&A TWO

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

考虑到事件复杂度第一种方法已经变得不可行。由于已经排好序,所以采用一种类似于快排的思路:

从最大最小开始找(即数组的两端向中间逼进)

  • 加起来太大则大的一端往中间移动
  • 加起来太小则小的一端往中间移动
public int[] twoSum(int[] num, int target) {
        int[] indice = new int[2];
        if (num == null || num.length < 2) return indice;
        int left = 0, right = num.length - 1;
        while (left < right) {
            int v = num[left] + num[right];
            if (v == target) {
                indice[0] = left + 1;
                indice[1] = right + 1;
                break;
            } else if (v > target) {
                right--;
            } else {
                left++;
            }
        }
        return indice;
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-07-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Q&A TWO
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档