• day06作业--------------Java方法和数组(二)


    1.给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,
    并返回他们的数组下标,假设每种输入只会对应一个答案
    (因为是两个数,所以下标值,有两个,所以该方法返回一个int[],里面包含两个整数对应的数组下标)

    2. 给定一个数组,将数组中的元素循环向右移动 k 个位置,其中 k 是非负数。

    举例
    输入: [1,2,3,4,5,6,7] 和 k = 3
    输出: [5,6,7,1,2,3,4]
    解释:
    向右循环移动 1 位: [7,1,2,3,4,5,6]
    向右循环移动 2 位: [6,7,1,2,3,4,5]
    向右循环移动 3 步: [5,6,7,1,2,3,4]

    答案:

    1.

     

     1 package com.day006;
     2 
     3 import java.util.Arrays;
     4 
     5 /*
     6  * 1.给定一个整数数组 nums 和一个目标值 target,
     7  * 请你在该数组中找出和为目标值的那两个整数,
     8  * 并返回他们的数组下标,假设每种输入只会对应一个答案
     9    (因为是两个数,所以下标值,有两个,所以该方法返回一个int[],
    10          里面包含两个整数对应的数组下标)
    11  */
    12 public class Demo1 {
    13     public static void main(String[] args) {
    14         int[] arr = {1,5,4,6,3};
    15         int[] a = findAdd(arr, 10);
    16         System.out.println(Arrays.toString(a));
    17     }
    18     
    19     public static int[] findAdd(int[] arr, int target) {
    20         int[] printarr = new int[2];
    21         for(int i = 0; i < arr.length; i++) {
    22             for(int j = i+1; j< arr.length; j++) {
    23                 if(arr[j] == target - arr[i]) {
    24                     printarr[0] = i;
    25                     printarr[1] = j;
    26                 }
    27             }
    28         }
    29         return printarr;
    30     }
    31 }

    2.

     

     

     1 package com.day006;
     2 
     3 import java.util.Arrays;
     4 
     5 /*
     6  * 2. 给定一个数组,将数组中的元素循环向右移动 k 个位置,其中 k 是非负数。
     7 
     8 举例  
     9 输入: [1,2,3,4,5,6,7] 和 k = 3
    10 输出: [5,6,7,1,2,3,4]
    11 解释:
    12 向右循环移动 1 位: [7,1,2,3,4,5,6]
    13 向右循环移动 2 位: [6,7,1,2,3,4,5]
    14 向右循环移动 3 步: [5,6,7,1,2,3,4]
    15  */
    16 public class Demo2 {
    17 
    18     public static void main(String[] args) {
    19         int[] a = {1,2,3,4,5,6,7};
    20         //调用moveCycle方法,用字符串move实现输出
    21         String move = Arrays.toString(moveCycle(a,3));
    22         System.out.println(move);
    23     }
    24     
    25     public static int[] moveCycle(int[] arr, int step) {
    26         int len = arr.length; //arr数组的数组长度
    27         //新建steparr数组,用来装移动位置后的数组
    28         int[] steparr = new int[len];
    29         for(int i = 0; i < len; i++) {
    30             if((i+step) > (len-1)) {
    31                 //如果steparr数组的索引值(i+step)大于数组arr数组的索引值,
    32                 //元素循环到前面去,要再减去arr的数组长度len,
    33                 //steparr的索引值变为(i+step-len)
    34                 steparr[i+step-len] = arr[i];
    35             }
    36             else {
    37                 //steparr数组的索引值
    38                 steparr[i+step] = arr[i];
    39             }
    40             
    41         }
    42         return steparr;
    43     }
    44 
    45 }
  • 相关阅读:
    poj 3616 Milking Time
    poj 3176 Cow Bowling
    poj 2229 Sumsets
    poj 2385 Apple Catching
    poj 3280 Cheapest Palindrome
    hdu 1530 Maximum Clique
    hdu 1102 Constructing Roads
    codeforces 592B The Monster and the Squirrel
    CDOJ 1221 Ancient Go
    hdu 1151 Air Raid(二分图最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/dust2017/p/12705267.html
Copyright © 2020-2023  润新知