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
  • 相关阅读:
    html+css实现简易下拉菜单
    Win10 设置外网多用户远程桌面连接
    ubuntu 14.04 下svn + apache2 配置
    JavaScript 学习笔记(一)
    生成Log文件的写法
    运行执行sql文件脚本的例子
    css实现文本框和下拉框结合的案例
    angularjs 1 开发简单案例(包含common.js,service.js,controller.js,page)
    将字符串转成只有首字母是大写
    java之springboot的spring-boot-starter-aop的切面编程的使用(四)
  • 原文地址:https://www.cnblogs.com/zhenzhenhuang/p/6813568.html
Copyright © 2011-2022 走看看