zoukankan      html  css  js  c++  java
  • leetcode two_sum (easy) /java

    刷题背景

    担心找不到工作。

    看think in java略枯燥,传智播客的视频太浅显。

    于是刷题练习算法和java。

    废话少说。

    题:

    java菜鸟一枚,用自己的编译器便于检查语法错误。

    所以首先写了一个main函数,用于测试。

     1 public static void main(String[] args)
     2     {
     3         Scanner input=new Scanner(System.in);
     4         String s=input.nextLine();
     5         String[] s1=s.split(",");
     6         int len=s1.length;
     7         int[] nums=new int[len];
     8         int i=0;
     9         for(String str:s1)
    10             System.out.print(str+" ");
    11         System.out.println('
    ');
    12         for(i=0;i<s1.length;i++)
    13         {
    14             Integer it=Integer.valueOf(s1[i]);
    15             int temp=it.intValue();
    16             nums[i]=temp;
    17         }
    18         for(i=0;i<len;i++)
    19             System.out.print(nums[i]+" ");
    20         System.out.println('
    ');
    21         int target=input.nextInt();
    22         System.out.println(target);
    23 
    24         int[] res=new int[2];
    25         res=twoSum(nums,target);
    26         System.out.print(res[0]+"-"+res[1]);
    27     }
    View Code

    此处提及:java和c++的一点区别,c++不能直接返回一个数组,只能返回数组的指针,使得控制数组的生命周期变得困难,并且容易导致内存泄露。在Java中,直接返回一个数组,无需为它负责,使用完后,垃圾回收器会清理。(来自think in java)

    第一个问题,如何读入带逗号的数组?

    参考http://blog.csdn.net/DeMonliuhui/article/details/70157651

    第二个问题,如何转为int数组传入函数?

    参考http://www.blogjava.net/ljc-java/archive/2011/02/28/345344.html

    关于功能函数。两层for循环遍历。因要求一个元素不能重复使用故添加  i!=j  限制。

     1 public static int[] twoSum(int[] nums, int target) {
     2         int[] r=new int[2];
     3         int i=0,j=0;
     4         boolean flag=false;
     5         for(i=0;i<nums.length;i++)
     6         {
     7             for(j=0;j<nums.length;j++)
     8             {
     9                 if(nums[i]+nums[j]==target&&i!=j)
    10                 {
    11                     r[0]=i;
    12                     r[1]=j;
    13                     flag=true;
    14                     break;
    15                 }
    16             }
    17             if(flag)
    18                 break;
    19         }
    20 
    21         return r;
    22     }
    View Code
  • 相关阅读:
    待写
    让一个小div在另一个大div里面 垂直居中的四种方法
    20 个有用的 SVG 工具,提供更好的图像处理
    php原理简述
    Apache 打开网页的时候等待时间过长的解决方案
    TCP协议中的三次握手和四次挥手(图解)
    apache 各平台进程线程模块解析
    浅谈移动Web开发(上):深入概念
    响应式布局
    jQuery Mobile 入门教程
  • 原文地址:https://www.cnblogs.com/zhenzhenhuang/p/6813568.html
Copyright © 2011-2022 走看看