zoukankan      html  css  js  c++  java
  • LeetCode(一)

    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;
        }

     

  • 相关阅读:
    数据库路由中间件MyCat
    MyCat
    网页动画师与技术开发,如何精准高效的协作完成动效。
    JAVA异常的最佳工程学实践探索
    MySQL导入.sql文件及常用命令
    如何申请新浪SAE,发布自己的网站
    新手教程: 如何在新浪云计算SAE里部署代码
    微信公众平台开发(一) 配置接口
    SQL数据库面试题以及答案
    Sql Server之旅——终点站 nolock引发的三级事件的一些思考
  • 原文地址:https://www.cnblogs.com/rekent/p/7217959.html
Copyright © 2011-2022 走看看