我正在尝试用Java实现二进制搜索,但是我的代码有一些问题。如果我要查找的元素存在于数组中,它就会起作用。如果没有,程序就不会打印错误消息。我的意思是-
当我运行我的代码时-这是输出-
Please enter array size
2
Please enter element 0
3
Please enter element 1
4
Sorted array elements[3, 4]
Please enter the element you want to find in the array
3
Match 3 found at index 0
但是,如果我查找数组中不存在的元素,程
我对编程很陌生,我正在学习C。我试图用递归来解决一个问题。我已经找到了很多关于这方面的信息,我可以在我的程序中使用它,但我仍然想尝试一些不同的东西。我的问题如下:
bool search(int value, int values[], int n)
// int value is value to search,
// int values[] is the array in which value is to be found (or not)
// int n is size of array
// some code here and then:
if (midd
我正在为第n个斐波纳契数制作程序。我用递归和回忆录制作了下面的程序。主要问题是,n的值可以上升到10000,这意味着10000的斐波那契数将超过2000位数。
通过谷歌搜索,我发现我可以使用数组,并将解决方案的每一个数字存储在数组的一个元素中,但我仍然无法找到如何用我的程序实现这种方法。
#include<iostream>
using namespace std;
long long int memo[101000];
long long int n;
long long int fib(long long int n)
{
if(n==1 || n==2)
我有一个名为x的字符串数组,它包含“男孩”或“女孩”。然后我想在不改变x的顺序的情况下创建N个组,每个组必须至少有两个字符串,并且组的第一个成员和最后一个成员必须是相同的字符串(“男孩”或“女孩”)。返回创建组的方法的数量。
示例:
String[] x = {"Boy", "Boy", "Girl", "Boy", "Girl", "Girl", "Boy", "Boy"}; // Can be any length
int N = 3; // N <= x.
我用Java创建了一个非常简单的链表:
public class LinkedList {
class Node {
public Node next;
public int item;
public Node (int item) {
this.item = item;
}
}
int listSize = 0;
Node first = null;
Node last = null;
public void add(int n) {
我在LeetCode中尝试了解决3和问题的二进制解决方案:
给定一个数组nums of n整数,在nums中有元素a、b、c这样的a + b + c = 0吗?在数组中找到所有唯一的三重奏,这会给出零的和。注意:解决方案集不能包含重复的三重奏。示例:给定数组num= -1,0,1,2,-1,-4,解决方案集为:[ -1,0-1,-1,-1,2 ]
我的计划:分治threeSum
一次迭代
还有一个two_Sum问题。
将two_Sum问题分解为问题
一圈
二进制搜索
复杂性是:O(n^2\log{n})。
class Solution:
"""
So
在最近为我的编程2类分配的任务中,我们通过使用13,040个字符串填充一个java ArrayList来测试搜索的效率。顺序搜索明显比二进制搜索慢,因为复杂性不同,代码实际需要循环遍历代码的次数也不多。
然而,迭代二进制搜索和递归二进制搜索具有相同的比较量。例如:
sequentialSearch(): 'some_word' found in ArrayList at index 13,020 - comparisons: 13,021
比较是计算机实际检查用户的"some_word“是否等于值ArrayList的次数。
iterativeBinarySearch()
编写一个方法countBinary,该方法接受整数n作为参数,并按升序打印所有具有n个数字的二进制数字,并将每个值打印在单独的行上。所有n位数字都应该显示在所有数字上,必要时包括前导零。你可以假设n是非负的。如果n为0,则应生成输出的空行。不要在解决方案中使用循环;递归地实现它。
我的问题是,我不知道如何打印0和1,因为n是我能拥有的唯一参数。我也不能使用for循环并将递归调用放在循环中,所以我不得不坚持。到目前为止,这就是我所拥有的:
public static void countBinary(int n){
if (n < 0) {
throw new Illega
此代码生成一个随机数,按升序对其进行排序,并执行二进制搜索以查找目标值。我的问题是如何修改这段代码以找到给定目标的最大索引。例如,数组有{ 1,2,3,5,5,5},目标是5,所以输出应该是6,而不是3。谢谢。
import java.util.*;
public class Sort
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
System.out.print("Ho
到目前为止,我只得到数组中可以计数一个特定值的部分。但是,我想知道如何得到数组中的“每个”数字并显示它们。
这是我的密码-
public class CIS3618thAssignment
{
public static void main(String[] args) {
int[] randomNumbers = new int[100];
for(int index = 0; index < randomNumbers.length; index++)
{
randomNumbers[index] = (int) (Math.ran
我需要创建一个在Java中有两个参数的方法,上边框和低边框。此方法必须创建一个从数字2到数字10的数组。
然后,我必须实现另一个方法,它计算给定数字的阶乘。
然后,我必须实现第三个方法,它为创建的数组中的每个元素计算阶乘,并在TestClass中测试所有这些方法。
我知道如何做到这一点,但显然我在代码中犯了某种错误,这给了我StackOverflow异常。我读了几遍代码,但我似乎不太明白我错了什么地方。
package fakultaetinarray;
public final class FakultaetinArray{
private int i;
private
我已经为Ackermann函数编写了一个非递归的解决方案,它似乎工作得很完美,比普通的递归解决方案工作得更快。那么,如果它可以迭代求解,为什么它是一个非原始递归函数呢?有人能告诉我,如果我误解了什么是原始递归函数,或者我应该和谁谈谈才能得到答案呢?
以下是Java代码:
import java.util.Scanner;
import java.util.ArrayList;
public class ackermann {
public static void main(String[] args){
Scanner in = new Scanner(System.i
我看到了很多关于如何搜索数组来查找特定实例的示例,我想要做的是找到所有实例并打印它们,例如,我有以下结构
struct BookInfo
{
char title[50];
int numAuthors;
char authors[50][50];
int year;
int checkedout;
};
struct BookInfo library[500];
我有一个在几年内搜索的函数,但它只给我第一个实例,它找到了如何让它给我机器人实例?下面是函数
int yearsearch()
{
int target, i, l, r, mid;
这是我所在学院的数据结构和算法课程的一个小测验中的一个问题。
在最坏的情况下,搜索排序链接列表中的元素所需的比较数是多少?
可供选择的办法如下:
a.委员会(n/2)
b.赛伊(原木)
c. n2
d. ceil ((log n) + 1)
e. n
根据答案键,正确的答案是n。
但是我这样想,在一个排序的链接列表中,搜索不需要遍历所有的元素。它可以从当前跳到第二个节点(比如curr->next->next,并保留一个类似于prev = curr->next的前一个指针),并查看该节点的键是否小于要搜索的键,
如果要搜索的密钥大于当前节点的密钥,则重复此操作。
我指的是leetcode问题:
有两个众所周知的解决方案来解决这个问题。一个使用Heap/PriorityQueue,另一个使用二进制搜索。二分搜索解决方案是这样的():
public class Solution {
public int kthSmallest(int[][] matrix, int k) {
int lo = matrix[0][0], hi = matrix[matrix.length - 1][matrix[0].length - 1] + 1;//[lo, hi)
while(lo < hi) {
int mid = lo +
我是C编程语言的新手。
我需要得到用户输入的每一个数字。
这是我的代码:
#include <stdio.h>
int main()
{
int n[100];
printf("Enter a number: ");
scanf("%d",&n);
printf("%d %d %d",n[1],n[2],n[3]);
return 0;
} //i know that my code is not assigning like i want.
现在,例如,用户输入了一个像123这样的数