找到2D数组中的最大值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找到2D数组中的最大值相关的知识,希望对你有一定的参考价值。

我有一个2D数组,每个元素都是一个字符串,我需要将包含数字的字符串转换为整数。

String[][] weatherData = [["London", "23", "11", "10.1"],["Tokyo","21", "9", "11"], ["Cape Town", "31", "12", "21"]]

每个阵列的第一个元素是城市名称,第二个是最高温度,第三个是最低温度,第四个是降雨量。

我需要将所有数值转换为整数,然后搜索每个数组的第二个元素(最高温度)以找到整个weatherData数组的最高温度并显示该温度。

如果有人可以提供帮助那就太棒了!

答案

我会将原始的Strings数组转换为具有适当数据类型(整数和浮点数)的对象实例。

从那里你可以更容易地利用数据做事,比如找到温度最高的城市。一种方法是通过高温对对象列表进行排序,然后返回列表的第一个元素。

class Record {
    String name; int high, low; double rainfall
    Record(name, high, low, rainfall) {
        this.name = name
        this.high = high.toInteger()
        this.low = low.toInteger()
        this.rainfall = Double.valueOf(rainfall)
    }
}

String[][] weatherData = [["London", "23", "11", "10.1"],["Tokyo","21", "9", "11"], ["Cape Town", "31", "12", "21"]]

def data = weatherData.collect { new Record(*it) }
def hottest = data.sort({ r1, r2 -> r2.high <=> r1.high}).first()
assert hottest.name == 'Cape Town'
另一答案

这个简单的怎么样?

String[][] weatherData = [["London", "23", "11", "10.1"],["Tokyo","21", "9", "11"], ["Cape Town", "31", "12", "21"]]
println weatherData.collect{ it[1] as Integer}.max()
另一答案

您不能在字符串数组中包含int值。但是你可以做一个比较每个值(string.toInteger())并返回最高值的循环。

另一答案

您可以使用此代码转换为整数,然后在该循​​环之后转换为最大温度

// A program to demonstrate the use of stringstream
#include <iostream>
#include <sstream>
using namespace std;

int main()
{
    string s = "12345";

    // object from the class stringstream
    stringstream geek(s);

    // The object has the value 12345 and stream
    // it to the integer x
    int x = 0;
    geek >> x;

    // Now the variable x holds the value 12345
    cout << "Value of x : " << x;

   return 0;
}

More Methods to Convert Click here

以上是关于找到2D数组中的最大值的主要内容,如果未能解决你的问题,请参考以下文章

查找2D数组C ++中每一行的最大值

在片段着色器中,为啥我不能使用平面输入整数来索引 sampler2D 的统一数组?

2D 中的滑动窗口最小值/最大值

如何在二维字符数组中找到相同字符的菱形?

在 2D numpy 数组的每个滚动窗口中获取最大值

分治算法数组中的最大个数