繁体   English   中英

给定一个数组 integer,返回数组中 9 的个数

[英]Given an array of integer , return the number of 9's in the array

基本上这个问题的目的是计算在数组中输入数字 9 的次数,例如,arrayCountNines([1, 9, 9, 3, 9]) = 3

我尝试过使用 Stream 的数字,例如通过 using.collect 但这似乎不起作用。 也尝试过 HashMaps

    public class NewClass4 {
   public int arrayCountNines(int[] nums) {
      HashMap < Character, Integer > map = new HashMap<>();
      for (int i =0; i<nums.length; i++) {
          char[] charr = String.valueOf(nums[i]).toCharArray(); 
          for(int j = 0; j<charr.length; j++) {
              if(map.containsKey(charr[j])) {
                  map.put(charr[j], map.get(charr[j])+1); 
              }
              else {
                  map.put(charr[j], 1);
              }
          }
      }
      return 1; 

}


    }

] 1

它不返回 9 在数组中的次数

public int arrayCountNines(int[] nums) {
   return (int) Arrays.stream(nums).filter(value -> value == 9).count();
}

试试这个简单的方法:

public int arrayCountNines(int[] nums) {
    int result = 0;
    for(int i = 0; i < nums.length; i++){
        if(nums[i] == 9){
            result++;
        }
    }
    return result;
}

试试看:

   public int arrayCountNines(int[] nums) {
      int count=0;
      for (int i =0; i<nums.length; i++) {
          int v = nums[i];
          if (v==9) {
             count++;
          }
      }
      return count; 
   }

您不能只使用 for 循环遍历数组,然后在项目等于 9 时添加到计数器吗?

...
int nineCounter = 0;
for(int i=0; i<array.length ; i++){
  if(array[i] == 9){
    nineCounter++;
  }
}
return nineCounter;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM