问一个java的函数调用问题# JobHunting - 待字闺中
s*4
1 楼
会写c++,只是拿leetcode一个例子来问一下java的函数调用问题:
比如说我现在创建了两个文件:Solution.java和SolutionTest.java:
Solution.java:
public class Solution {
public int maxProfit(int[] prices) {
// Start typing your Java solution below
// DO NOT write main() function
if (prices.length < 2)
return 0;
int maxDiff = 0;
int minValue = prices[0];
for (int i = 1; i < prices.length; ++i) {
if (prices[i] < minValue)
minValue = prices[i];
if (prices[i] - minValue > maxDiff)
maxDiff = prices[i] - minValue;
}
return maxDiff;
}
}
SolutionTest.java:
public class SolutionTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Solution solution = new Solution(); // create a new object
int[] prices = {-1, 1, 2};
System.out.println("Maximum profit is " + solution.maxProfit(prices)
);
}
}
程序可以通过。我的问题是,这样写是不是一种professional的方法?
就是先Solution solution = new Solution();
然后调用solution.maxProfit(prices)
总觉得这个maxProfit函数其实可以是static的。如果我刚才的那个方法不是
professional的方法,怎么改比较好?
非常感谢! :)
比如说我现在创建了两个文件:Solution.java和SolutionTest.java:
Solution.java:
public class Solution {
public int maxProfit(int[] prices) {
// Start typing your Java solution below
// DO NOT write main() function
if (prices.length < 2)
return 0;
int maxDiff = 0;
int minValue = prices[0];
for (int i = 1; i < prices.length; ++i) {
if (prices[i] < minValue)
minValue = prices[i];
if (prices[i] - minValue > maxDiff)
maxDiff = prices[i] - minValue;
}
return maxDiff;
}
}
SolutionTest.java:
public class SolutionTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Solution solution = new Solution(); // create a new object
int[] prices = {-1, 1, 2};
System.out.println("Maximum profit is " + solution.maxProfit(prices)
);
}
}
程序可以通过。我的问题是,这样写是不是一种professional的方法?
就是先Solution solution = new Solution();
然后调用solution.maxProfit(prices)
总觉得这个maxProfit函数其实可以是static的。如果我刚才的那个方法不是
professional的方法,怎么改比较好?
非常感谢! :)