小编use*_*007的帖子

如何确定数组是否包含单独数组中的所有整数

我在学校的计算机科学课上,我坚持这个问题.并且甚至不能真正想出如何解决它的想法.

这是一个字一个字:编写一个静态方法contains,它接受两个整数数组a1和a2作为参数,并返回一个布尔值,表示a2的元素序列是否出现在a1中(对于是,为true,对于no为false).a2中的元素序列可以出现在a1中的任何位置,但必须以相同的顺序连续出现.例如,如果名为list1和list2的变量存储以下值:

int[] list1 = {1, 6, 2, 1, 4, 1, 2, 1, 8};
int[] list2 = {1, 2, 1};
Run Code Online (Sandbox Code Playgroud)

然后调用contains(list1, list2)应该返回true,因为list2的值序列{1, 2, 1}包含在list1中的list1中.如果list2存储了值{2, 1, 2},则调用contains(list1, list2)将返回false,因为list1不包含该值序列.任何两个具有相同元素的列表都被认为是相互包含的,因此调用contains(list1, list1)应该返回true.

您可以假设传递给您的方法的两个数组的长度至少为1.您可能不会使用任何字符串来帮助您解决此问题,也不会使用生成字符串的方法(如Arrays.toString).

如果有人能指出我正确的方向,这将是伟大的.

这也是我提出的一次尝试,但它没有足够数量的测试

public static boolean contains(int[] set1, int[] set2) {
    boolean contains = false;
    for (int i = 0; i < set1.length; i++) {
        for (int a = 0; a < set2.length - 1; a++) {
            if (set1[i] == …
Run Code Online (Sandbox Code Playgroud)

java arrays integer contains

7
推荐指数
1
解决办法
9612
查看次数

C程序检测直角三角形

如果我在坐标系中给出了100个点,我必须找到这些顶点中是否存在直角三角形.有没有办法可以检测这些顶点中的直角三角形,而不必选择所有3个顶点对,然后在它们上应用毕达哥拉斯定理?可以有更好的算法吗?谢谢你的帮助.:)

c algorithm

6
推荐指数
1
解决办法
1856
查看次数

负载均衡 CloudSim

我最近一直在尝试从事云计算工作,作为我大学作业的一部分。

我一直在尝试使用 CloudSim 实现一种新的负载平衡算法(已在一些研究论文中提出)。

请帮助我解决这个算法,我在实现它时遇到了一些重大问题。

这是代码

/*
* Title: Load Balancing in Cloud Computing
*/
package org.cloudbus.cloudsim;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public final class MyPolicyNew extends VmAllocationPolicy {

    private Map<String, Host> vmTable;
    private Map<String, Integer> usedPes;
    private List<Integer> freePes;

    private int status[] = new int[100];

    public MyPolicyNew(List<? extends Host> list) {
        super(list);
        setFreePes(new ArrayList<Integer>());
        for (Host host : getHostList()) {
            getFreePes().add(host.getPesNumber());

        }

        setVmTable(new HashMap<String, Host>());
        setUsedPes(new HashMap<String, Integer>());
    }

@Override

public boolean allocateHostForVm(Vm vm) {
    int …
Run Code Online (Sandbox Code Playgroud)

java netbeans cloudsim

5
推荐指数
1
解决办法
7210
查看次数

在C++中工作正常,但在C中运行时错误

我这里有这个代码::

int f(int x, int *py, int **ppz)
{
  int y, z;
  **ppz += 1; 
   z  = **ppz;
  *py += 2;
   y = *py;
   x += 3;
   return x + y + z;
}

int main()
{
   int c, *b, **a;
   c = 4;
   b = &c;
   a = &b; 
   printf( "%d\n", f(c,b,a));
   printf( "%d\n", c);
}
Run Code Online (Sandbox Code Playgroud)

(请相应选择头文件)

当我将此代码作为C++程序运行时,它运行顺利.但是,当我将它作为C程序运行时,它会完成执行,打印所有值,但是在代码的最后一行,会产生运行时错误.我附加了一个调试器,并在程序结束时(在C中运行此代码时)单击Step-Over,它将我带到一个min_gw文件,看起来像这样::

__mingw_CRTStartup()
__mingw_CRTStartup+208: mov    %eax,%ebx
__mingw_CRTStartup+210: call   0x407fb0 <_cexit>
__mingw_CRTStartup+215: mov    %ebx,(%esp)
__mingw_CRTStartup+218: call   0x408088 <ExitProcess@4>
__mingw_CRTStartup+223: nop
Run Code Online (Sandbox Code Playgroud)

这是什么文件?为什么代码在C ??中失败?

Ideone参考::

C …

c c++

5
推荐指数
1
解决办法
194
查看次数

将前向声明的类型转换为void是合法的吗?

下面是一个C++头文件,它在g ++和clang下编译时没有错误,但是在MSVC2015下,它出错了(void) copyFrom,出错了C2027: use of undefined type 'blah::SomeOtherClass'.

我的问题是:根据C++标准,此代码是否合法?或者如果代码不正确(即因为将参数转换为(void)合法地需要的不仅仅是前向声明),那么保留我的DOxygen文档以获得copyFrom参数的好方法是什么,而不会在parameter copyFrom was never referenced我的编译器中引入不必要的警告-Output?(注意,此时SomeOtherClass无法获得完整定义,因为SomeOtherClass取决于DummyImplementation)

#ifndef blah_h
#define blah_h

namespace blah {

class SomeOtherClass;

/** Example of the problem at hand */
class DummyImplementation
{
public:
   /** Dummy implemention of CopyFrom().
    *  @param copyFrom This parameter is ignored.
    *  @returns zero.
    */
   int CopyFrom(const SomeOtherClass & copyFrom)
   {
      (void) copyFrom;  // error C2027: use of undefined type 'blah::SomeOtherClass' …
Run Code Online (Sandbox Code Playgroud)

c++ doxygen forward-declaration visual-c++ language-lawyer

3
推荐指数
1
解决办法
135
查看次数

打印INT的最大值

我尝试打印程序中的最大值int.使用以下代码::

#include <stdio.h>
#include <limits.h>
int main(void) {
    printf("%d",INT_MAX);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:: 2147483647

但是,当我改变我的printf声明到printf("%lld",INT_MAX);我的输出成为577732524332023807.INT_MAX值应该在范围内long long int,那么为什么它无法转换INT_MAX为正确的数字long long int.

在此先感谢您的帮助.

c int long-long

2
推荐指数
3
解决办法
179
查看次数