好的,所以问题不一定是实际的代码,因为它工作,而是逻辑。问题是,你需要多少猜测才能得到你所想的数字?在1-100之间,无论是什么,只要在1-100之间,总能猜到你的7次试数。下一个问题是,关于1-50,我想只要5次就能猜出你的号码。
import java.util.Scanner;
public class ThinkofaNumber {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Guess a number b
我正在尝试编写一个程序,使用二进制搜索在具有随机生成的数字的数组中查找密钥。当密钥为0或一个非常大的数字时,我无法让程序找到密钥。这是一个家庭作业,但是,我遇到了困难,想不通了。提前感谢您的帮助。
public static int binarySearch(int[] list, int key) {
int low = 1;
boolean foundKey = false;
int high = list.length;
int i = 0;
while (high >= low) {
i = i + 1;
比方说,我正在尝试寻找数组中最大的元素,并且我编写了一些代码,如下所示。
public class LargestElement
{
public static void main(String[] args)
{
int[] a = {1,2,6,4,5,4,3,1};
int max = a[0];
for(int i = 1;i<a.length;i++)
{
if(a[i] > max)
max = a[i];
}
我创建了自己的indexOf函数。我想知道是否有人能帮我想出一个提高效率的方法。我正在练习面试,所以关键是我不能使用任何字符串方法。我认为该方法的运行时为O(n^2),空间为O(n)。如果我错了,请纠正我。
另外,我想确保程序安全、正确地运行,这是我能想到的唯一的测试用例--长度比较。
代码:
public static int myIndexOf(char[] str, char[] substr) {
int len = str.length;
int sublen = substr.length;
int count = 0;
if (su