public int getMin(int target, List<Integer> ill) { List<Integer> toll = new ArrayList<Integer>(); for(int i : ill) { if(i>target) { toll.add(i); } }
return Collections.min(toll); }我就这点技术了 想再精我就不会了
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; public class ListMin { public static void main(String[] args){ int target =8; List<Integer> list = new ArrayList<Integer>(); list.add(5); list.add(8); list.add(10); list.add(20); int min = new ListMin().getMin(8, list); System.out.println(min); } public int getMin(int target, List<Integer> list) { list.remove(new Integer(target)); return Collections.min(list); } }
我和7楼想法一样 不过略加修改下面的方法public static int getMin(int target, List<Integer> list) { list.remove(target); int min= Collections.min(list); list.add(target); return min; } 首先加上static方便调用,然后已经是int的参数不用再转Integer, 最后我觉得返回最小值后的List里面的那个8应该是还在的。
public int getMin(int target, List<Integer> list) { list.remove(Integer.valueOf(target)); return Collections.min(list); }
支持这个 API 中的Collections 里面提供很多方法 什么找重复之类的 里面都有 ,充分利用里面的方法,
public int getMin(int target, List<integer>) { int temp; for(int i = 0; i < list.size(); i ++) { int x = Integer.parseInt(String.valueOf(m.get(i))); if(x < target) temp = x ; } }
错了 public int getMin(int target, List<Integer> list) { int temp = Integer.parseInt(String.valueOf(list.get(0))) ; for(int i = 1; i < list.size(); i ++){ int z = Integer.parseInt(String.valueOf(list.get(i))); if(z < target && z < temp) temp = z;
} return temp ;
}
public static void main(String[] args) { int num = getMin(new Integer[]{5,50,11,7,8,10,52,9,20},8); System.out.println(num); } private static int getMin(Integer [] nums , int target) { ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(nums)); Collections.sort(list);//排序 //未检测越界情况 return list.get(list.lastIndexOf(target)+1);//获得目标数最后出现的位置,那么下一个位置就是比目标数大的所有数中的最小值 }
public class ListMin { public static void main(String[] args){ int target =8; List<Integer> list = new ArrayList<Integer>(); // list.add(5); list.add(8); list.add(8); list.add(11); list.add(10); list.add(20); int min = new ListMin().getMin(target, list); System.out.println(min); } public int getMin(int target, List<Integer> list) { list.remove(new Integer(target)); return Collections.min(list); } } //楼上凡是remove的好像都不行吧
这道题调用Collections.min(list);好像不太好用,哥就爱挑战权威
sort一下,然后取倒数第二个不就完事了吗?????
如果你不知道谁最小呢? 那么你sort还行么?
public static void main(String[] args) throws Exception { int[] array = { 8, 10, 20, 11, 12, 4, 5, 8, 7, 3 }; int target = 8; int min = array[0]; for (int i = 0; i < array.length; i++) { if (array[i] < min && array[i] != target) { min = array[i]; } if (min == target) { min = array[i]; } } System.out.println(min); }简单,高效
public static void main(String[] args) { List listFont = new ArrayList(); listFont.add(10); listFont.add(8); listFont.add(5); listFont.add(20); System.out.println(listFont); System.out.println(Collections.min(listFont)); } 结果: [10, 8, 5, 20] 5
为什么不用迭代器?import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class Test { public static void main(String[] args) { int target = 8; List<Integer> myList= new ArrayList<Integer>(); myList.add(4); myList.add(17); myList.add(8); myList.add(9); myList.add(3); myList.add(6); System.out.println(getMin(target,myList)); }
public static int getMin(int target, List<Integer> list) { int min = target; List<Integer> arrayList = list; Iterator<Integer> iterator = arrayList.iterator(); while (iterator.hasNext()) { Integer integer = (Integer) iterator.next(); if(integer < min){ min = integer; } } return (min == target) ? Integer.MIN_VALUE : min; } }
上面写错了 水了 汗import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class Test { public static void main(String[] args) { int target = 8; List<Integer> myList= new ArrayList<Integer>(); myList.add(14); myList.add(17); myList.add(8); myList.add(9); myList.add(13); myList.add(16); System.out.println(getMin(target,myList)); }
public static int getMin(int target, List<Integer> list) { int min = Integer.MAX_VALUE; List<Integer> arrayList = list; Iterator<Integer> iterator = arrayList.iterator(); while (iterator.hasNext()) { Integer integer = (Integer) iterator.next(); if(integer < min && integer != target){ min = integer; } } return min; } }此方法可扩展至范型
{
List<Integer> toll = new ArrayList<Integer>();
for(int i : ill)
{
if(i>target)
{
toll.add(i);
}
}
return Collections.min(toll);
}我就这点技术了 想再精我就不会了
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
public class ListMin {
public static void main(String[] args){
int target =8;
List<Integer> list = new ArrayList<Integer>();
list.add(5);
list.add(8);
list.add(10);
list.add(20);
int min = new ListMin().getMin(8, list);
System.out.println(min);
} public int getMin(int target, List<Integer> list) {
list.remove(new Integer(target));
return Collections.min(list);
}
}
我和7楼想法一样 不过略加修改下面的方法public static int getMin(int target, List<Integer> list) {
list.remove(target);
int min= Collections.min(list);
list.add(target);
return min;
}
首先加上static方便调用,然后已经是int的参数不用再转Integer,
最后我觉得返回最小值后的List里面的那个8应该是还在的。
如果考虑效率,自己写循环,弄一个临时变量,储存最小值。循环中判断是否等于8,等于就continue,再判断是否小于临时变量,小于临时变量就等于当前索引对应的值。
如果考虑写法简单,一个remove(8),一个min。最保险。如果想不破坏原list的结构,最前面加个copy,后面都对副本超作就行了。
public int getMin(int target, List<Integer> list) {
list.remove(Integer.valueOf(target));
return Collections.min(list);
}
支持这个 API 中的Collections 里面提供很多方法 什么找重复之类的 里面都有 ,充分利用里面的方法,
public int getMin(int target, List<integer>) {
int temp;
for(int i = 0; i < list.size(); i ++)
{
int x = Integer.parseInt(String.valueOf(m.get(i)));
if(x < target) temp = x ;
}
}
{
int temp = Integer.parseInt(String.valueOf(list.get(0))) ;
for(int i = 1; i < list.size(); i ++){
int z = Integer.parseInt(String.valueOf(list.get(i)));
if(z < target && z < temp) temp = z;
}
return temp ;
}
public static void main(String[] args) {
int num = getMin(new Integer[]{5,50,11,7,8,10,52,9,20},8);
System.out.println(num);
}
private static int getMin(Integer [] nums , int target) {
ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(nums));
Collections.sort(list);//排序
//未检测越界情况
return list.get(list.lastIndexOf(target)+1);//获得目标数最后出现的位置,那么下一个位置就是比目标数大的所有数中的最小值
}
public class ListMin {
public static void main(String[] args){
int target =8;
List<Integer> list = new ArrayList<Integer>();
// list.add(5);
list.add(8);
list.add(8);
list.add(11);
list.add(10);
list.add(20);
int min = new ListMin().getMin(target, list);
System.out.println(min);
} public int getMin(int target, List<Integer> list) {
list.remove(new Integer(target));
return Collections.min(list);
}
}
//楼上凡是remove的好像都不行吧
那么你sort还行么?
public static void main(String[] args) throws Exception {
int[] array = { 8, 10, 20, 11, 12, 4, 5, 8, 7, 3 }; int target = 8;
int min = array[0]; for (int i = 0; i < array.length; i++) { if (array[i] < min && array[i] != target) {
min = array[i];
} if (min == target) {
min = array[i];
}
} System.out.println(min);
}简单,高效
List listFont = new ArrayList();
listFont.add(10);
listFont.add(8);
listFont.add(5);
listFont.add(20);
System.out.println(listFont);
System.out.println(Collections.min(listFont));
}
结果:
[10, 8, 5, 20]
5
import java.util.Iterator;
import java.util.List;public class Test {
public static void main(String[] args) {
int target = 8;
List<Integer> myList= new ArrayList<Integer>();
myList.add(4);
myList.add(17);
myList.add(8);
myList.add(9);
myList.add(3);
myList.add(6);
System.out.println(getMin(target,myList));
}
public static int getMin(int target, List<Integer> list) {
int min = target;
List<Integer> arrayList = list;
Iterator<Integer> iterator = arrayList.iterator();
while (iterator.hasNext()) {
Integer integer = (Integer) iterator.next();
if(integer < min){
min = integer;
}
}
return (min == target) ? Integer.MIN_VALUE : min;
}
}
import java.util.Iterator;
import java.util.List;public class Test {
public static void main(String[] args) {
int target = 8;
List<Integer> myList= new ArrayList<Integer>();
myList.add(14);
myList.add(17);
myList.add(8);
myList.add(9);
myList.add(13);
myList.add(16);
System.out.println(getMin(target,myList));
}
public static int getMin(int target, List<Integer> list) {
int min = Integer.MAX_VALUE;
List<Integer> arrayList = list;
Iterator<Integer> iterator = arrayList.iterator();
while (iterator.hasNext()) {
Integer integer = (Integer) iterator.next();
if(integer < min && integer != target){
min = integer;
}
}
return min;
}
}此方法可扩展至范型