1. // 小白一名,0算法基础,艰难尝试算法题中,若您发现本文中错误,
      或有其他见解,往不吝赐教,感激不尽,拜谢。
  1. 领扣 2 今日算法
  1. 题干
  1. //给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
    //
    // 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
    //
    // 示例:
    //
    // 给定 nums = [2, 7, 11, 15], target = 9
    //
    // 因为 nums[0] + nums[1] = 2 + 7 = 9
    // 所以返回 [0, 1]
  1. 初次尝试
  1. /*
    * 第一思路,仍是暴力解题
    * 每个元素与除自身外的元素相加
    * 何时与目标值相等,何时打破循环
    * 不出意外 只超过了 17.2%的玩家
    * 一组数据时间约为25ms
    * */
  1.  
  1. public int[] twoSum1(int[] nums, int target) {
  2. int first;
  3. int second;
  4. int a;
  5. int b=1;
  6. //外循环 假设第一个值为索引为a
  7. out:
  8. for (a = 0; a < nums.length; a++) {
  9. first=nums[a];
  10. //内循环 假设第二个值索引为b
  11. for(b=a+1;b<nums.length;b++){
  12. second=nums[b];
  13. //判断时候相等 相等跳出所有循环
  14. if(first+second==target){
  15. break out;
  16. }
  17. }
  18. }
  19. //返回值
  20. return new int[]{a,b};
  21. }

初次尝试

  1. /*
    * 想了下 之前的代码约为n方次
    * 一组数据两两组合且不重复为为n*(n-1)/2
    * 按照获得此公式的逻辑
    * 改动下了代码 因为代码本身很简单 便没有写注释
    * 其实是头疼,太累了
    * 本次用时约为 12ms 快了一倍
    * */
  1.  
  1. public int[] twoSum2(int[] nums, int target) {
  2.  
  3. int first;
  4. int second;
  5. for(int a=1;a<nums.length;a++){
  6. first= nums[a];
  7. second=target-first;
  8. for(int b=0;b<a;b++){
  9. if(second==nums[b]){
  10. return new int[]{a,b};
  11. }
  12. }
  13. }
  14. return null;
  15. }

第二次尝试

  1.  
  1. /*
    * 下面是 目前的最优代码之一
    * 因为我认为这个网站的数据量并不够大
    * 可能会存在误差
    * 思路跟我的一样,但是使用了HashMap
    * 使用是否包含代替了我的一次循环
    * 不太明白为什么会比我快了这么多
    * 应该是因为 HashMap的底层查找要优于循环吧
    * 明天再看看吧
    * */
  1.  
  1. public int[] twoSum(int[] nums, int target) {
  2. HashMap<Integer, Integer> map = new HashMap<>(nums.length);
  3. for(int i = 0; i < nums.length; i++){
  4. if(map.containsKey(target - nums[i])){
  5. return new int[]{i, map.get(target - nums[i])};
  6. } else {
  7. map.put(nums[i], i);
  8. }
  9. }
  10. return null;
  11. }

第三次尝试

  1.  

今天学servlet用到了druid 才发现之前的连接池这块已经忘了好多

想要复习,可又想去学习概率论和算法

心情复杂 取舍难定

年轻时我觉得钱是最重要的,到老发现,的确如此。

When I was young,I used to think that money was the most important thing in life,now I am old,I know it is.

  1.                                               写于 2018.11.18

day3——两数之和的更多相关文章

  1. 给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X

    题目:给定数组A,大小为n,现给定数X,判断A中是否存在两数之和等于X 思路一: 1,先采用归并排序对这个数组排序, 2,然后寻找相邻<k,i>的两数之和sum,找到恰好sum>x的 ...

  2. LeetCode 170. Two Sum III - Data structure design (两数之和之三 - 数据结构设计)$

    Design and implement a TwoSum class. It should support the following operations: add and find. add - ...

  3. LeetCode 371. Sum of Two Integers (两数之和)

    Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -. Exam ...

  4. LeetCode 167. Two Sum II - Input array is sorted (两数之和之二 - 输入的是有序数组)

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...

  5. [LeetCode] Two Sum IV - Input is a BST 两数之和之四 - 输入是二叉搜索树

    Given a Binary Search Tree and a target number, return true if there exist two elements in the BST s ...

  6. [LeetCode] 1. Two Sum 两数之和

    Part 1. 题目描述 (easy) Given an array of integers, return indices of the two numbers such that they add ...

  7. Leetcode(一)两数之和

    1.两数之和 题目要求: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重 ...

  8. 南大算法设计与分析课程OJ答案代码(1)中位数附近2k+1个数、任意两数之和是否等于给定数

    问题1 用来测试的,就不说了 问题2:中位数附近2k+1个数 给出一串整型数 a1,a2,...,an 以及一个较小的常数 k,找出这串数的中位数 m 和最接近 m 的小于等于 m 的 k 个数,以及 ...

  9. 两数之和,两数相加(leetcode)

    我们都知道算法是程序员成长重要的一环,怎么才能提高算法呢, 出来在网上看视频之外,动手练习是非常重要的.leetcode 就是一个非常好的锻炼平台. 1. 两数之和,在 leetcode 里面是属于 ...

随机推荐

  1. webpack基础小结。

    想写写webpack的学习体验的小结,加深自己的理解和使用技能,顺便过一下文档(4.0的功能感觉还是满好玩的). 本文主简写描述webpack中对各种文件的简单处理 基本知识点 处理js 加载css文 ...

  2. Nuxt 自动化部署及打包后文件自动上传七牛云

    1.安装七牛云 2.在项目根目录新建 upload.js 3.上传凭证 4.上传配置,详情参考七牛云文档 5.在 package.js中修改项目build完成执行upload文件命令 7. nuxt. ...

  3. 5分钟安装 关于win10安装composer PHP 用来管理依赖(dependency)关系的工具

    1.在你的phpstudy或者wamp中开启extension=php_openssl.dll扩展 (php配置文件)并配置好php的环境变量 2.在与你安装phpstudy和wamp不一样的盘中创建 ...

  4. WebApi接口访问异常问题。尝试创建“testController”类型的控制器时出错。请确保控制器具有无参数公共构造函数

    本来运行的好好的webAPI 接口突然报了个 :“尝试创建“testController”类型的控制器时出错.请确保控制器具有无参数公共构造函数” 错误.耗了半宿最终解决了, 原因: api控制器中引 ...

  5. IO流(一)

    一.异常 概述 异常就是Java程序在运行过程中出现的错误. 由来 问题也是现实生活中一个具体事务,也可以通过java的类的形式进行描述,并封装成对象.其实就是Java对不正常情况进行描述后的对象体现 ...

  6. UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 166: illegal multibyte sequence

    # -*- coding: utf-8 -*-# encoding = utf-8import unittestimport random class TestSequenceFunctions(un ...

  7. sql 与 mysql 链接数据库

  8. 1.3:Render Pipeline and GPU Pipeline

    文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 在学习SubShader之前,我们有必要对 Render Pipeline ...

  9. rsync如何不指定密码文件

    平时用rsync做数据同步时,都是通过--password-file指定一个密码文件 这个密码文件权限要求比较高,一般是600,属主属组都是rsync命令执行者 如果是在脚本中执行rsync,比如定时 ...

  10. java反射之获取所有方法及其注解(包括实现的接口上的注解),获取各种标识符备忘

    java反射之获取类或接口上的所有方法及其注解(包括实现的接口上的注解) /** * 获取类或接口上的所有方法及方法上的注解(包括方法实现上的注解以及接口上的注解),最完整的工具类,没有现成的工具类 ...