A. java面试题
解决思路: 你可以把每一个任务理解成一个一个的点, 然后把前提条件理解成 每个点之间的连接因素 . 代码需要实现的功能就是, 用 连接因素 把所有的点 连接在一起, 如果能连接成一个整体 , 那么就是 可以完成所有任务 , 如果不能连接在一起 , 那么就不能完成所有任务。
代码:
import java.util.*;
public class MyTest {
public static void main(String[] args) {
int[] tasks = {1,2,3,4,5,6,7,8}; //任务
String[] terms = {"[1,0]","[1,2]","[2,3]","[5,7]","[3,4]","[4,5]","[0,8]","[2,6]"};
parseTerms(terms);
Map<Integer,Object> taskMap = new HashMap<>();
int[] is = parseStr(terms[0]);
taskMap.put(is[0],new Object());
taskMap.put(is[1],new Object());
calc(taskMap);
boolean isOk = true;
for(int task : tasks){
if(taskMap.get(task)==null){
isOk = false;
break;
}
}
System.out.println("可以完成的任务是:"+taskMap.keySet());
System.out.println("是否可以完成所有任务:"+isOk);
}
public static void calc(Map<Integer,Object> taskMap){
while(true) {
boolean isHave = false;
for (Integer key : new ArrayList<>(taskMap.keySet())) {
Iterator<int[]> items = terms.iterator();
while (items.hasNext()) {
int[] is = items.next();
if (key == is[0] || key == is[1]) {
taskMap.put(is[1], new Object());
taskMap.put(is[0], new Object());
isHave = true;
items.remove();
}
}
}
if(!isHave){
break;
}
}
}
public static int[] parseStr(String s){
s = s.substring(1,s.length()).substring(0,s.length()-2);
return new int[]{Integer.parseInt(s.split(",")[0]),Integer.parseInt(s.split(",")[1])};
}
static List<int[]> terms = new ArrayList<>();
public static void parseTerms(String[] terms){
for(String s : terms){
int[] is = parseStr(s);
MyTest.terms.add(is);
}
}
}
B. 求java代码。如题,据说是个面试题。
写着玩的,看到了就练练,给你了
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class SortArray {
public static void main(String[] args) {
Integer[] array = {7, 4, 2, 7, 4, 3, 2, 9, 4, 1, 2, 3};
List<Element> list = new ArrayList<Element>();
for(int i = 0; i < array.length; i++) {
Integer temp = array[i];
Element e = new Element(temp);
int index = list.indexOf(e);
if(index >= 0) {
list.get(index).add();
} else {
list.add(e);
}
}
Collections.sort(list);
for(Object e : list.toArray()) {
System.out.println(e);
}
}
public static class Element<T extends Comparable> implements Comparable<Element> {
private T value;
private int times = 1;
public Element() {}
public Element(T value) {
if(value != null) {
this.value = value;
return;
}
throw new NullPointerException("Construct : value is null");
}
public void add() {
times++;
}
@Override
public boolean equals(Object obj) {
return (value.compareTo(((Element)obj).value) == 0) ? true : false;
}
@Override
public int compareTo(Element o) {
int temp = times - o.times;
return (temp == 0) ? value.compareTo(o.value) : temp;
}
@Override
public String toString() {
return value.toString() + " ( 出现 " + times + " 次 )";
}
}
}
C. JAVA面试直接是机试题,是写代码吗
机试题。因为JAVA面试考核的是考生编辑的程序能否正常运行,并不是检验考生是否能够正确书写出来编码。
D. 求解一段java面试宝典的代码改错
放eclipse里就会有红线提示,类名和文件名应该一致
你说的不会报错不知道是什么情况,默认设置是会报错的
package tv.bilibili;
import java.util.Scanner;
import java.util.regex.MatchResult;
public class test3 {
public static void main(String[] args) {
double price, money;
Scanner input = new Scanner(System.in);
System.out.println("请输入物品价格:");
price = input.nextDouble();// 接受输入数字
System.out.println("请输入支付金额:");
money = input.nextDouble();// 接受输入数字
if (price <= money) {
money = money - price;
int , wushi, ershi, shi, wu, yi, wujiao, yijiao;
= (int) (money / 100);
money = money - * 100;
wushi = (int) (money / 50);
money = money - wushi * 50;
ershi = (int) (money / 20);
money = money - ershi * 20;
shi = (int) (money / 10);
money = money - shi * 10;
wu = (int) (money / 5);
money = money - wu * 5;
yi = (int) (money / 1);
money = money - yi * 1;
wujiao = (int) (money / 0.5);
money = money - wujiao * 0.5;
yijiao = (int) (money / 0.1);
money = money - yijiao * 0.1;
System.out.println("主要支付给顾客100元:" + + "张;" + "50元:" + wushi
+ "张;" + "20元:" + ershi + "张;" + "10元:" + shi + "张;"
+ "5元:" + wu + "张;" + "1元:" + yi + "张;" + "5角:"
+ wujiao + "张;" + "1角:" + yijiao + "张;");
} else {
System.out.println("您所支付的金额不足!");
}
}
}
算是写完了,其实很简单自己不动手只会害了自己,既然选择这个,以后问问题不要直接求代码,而是求方法,不然你永远从事不了这一行
F. java面试题:一个人早上八点上山,晚上八点到达山顶。第二天早上八点下山,晚上八点到达山底。
java面试题的解析方式(思路如下):
public static void main(String[] args) {
// TODO Auto-generated method stub
int up = 8;
int down = 8;
while(up<=20){
if((up == 20-6) &&(up == 20-6)){
System.out.println("在"+up+"时到达同一地点");
break;
}
up += 1;
down += 1;
}
}
微软面试题的背后
微软的奇葩面试题答案并不重要,重要的是思考过程,而思考过程体现了你是否拥有公司所看重的能力,不仅是微软,其他公司的面试也是为了测试你的某种能力,如果你提前培养了这种能力,相当于知道了面试的“考纲”,在面试中自然就从容不迫,游刃有余了。
平时要知道转化能力是看透问题,然后找到解决方案的能力。所以转化能力最重要的是如何看透问题,也就是你思考问题的方式。
G. java面试题求解 求全部代码 急!!一个多行txt文本,每行数据以tab分隔
publicstaticvoidmain(String[]args){
try{
Filefile=newFile("D:\123.txt");
FileInputStreaminputStream=newFileInputStream(file);
BufferedReaderbufferReader=newBufferedReader(newInputStreamReader(inputStream,"GBK"));
List<String>threadColumns=newArrayList<String>();
while(true){
Stringline=bufferReader.readLine();
if(line==null||"".equals(line))
break;
else{
StringthreadColum=line.split(" ")[2].toString().substring(2,9);
threadColumns.add(threadColum);
}
}
bufferReader.close();
inputStream.close();
Collections.sort(threadColumns);
FileoutFile=newFile("D:\456.txt");
FileWriterfw=newFileWriter(outFile);
BufferedWriterwriter=newBufferedWriter(fw);
for(StringthreadColum:threadColumns){
writer.write(threadColum);
writer.newLine();//换行
}
writer.close();
fw.close();
}catch(Exceptione){
e.printStackTrace();
}
}
H. java面试题:写出下列代码的作用
I. java 面试题
代码来自java标准类库: java.util.Arrays.binarySearch 方法
public static int binarySearch(int[] a, int key) {
return binarySearch0(a, 0, a.length, key);
}
private static int binarySearch0(int[] a, int fromIndex, int toIndex,
int key) {
int low = fromIndex;
int high = toIndex - 1;
while (low <= high) {
int mid = (low + high) >>> 1;
int midVal = a[mid];
if (midVal < key)
low = mid + 1;
else if (midVal > key)
high = mid - 1;
else
return mid; // key found
}
return -(low + 1); // key not found.
}
J. java 面试问题:代码怎么写
string xmlPath = "Demo.xml"
XmlDocument _XmlDoc = new XmlDocument();
_XmlDoc.Load(xmlPath);
这个读入xml文件然后就是读取数据了
暂时还不会你加油