目的:找出一个整形数组中的元素的最大值 以下,我们用类和对象的方法来做. #include<iostream> using namespace std; class Array_max{ private://声明在类的外部不可訪问的隐私成员 int array[10]; int max; public://声明在类的外部能够訪问的开放的成员函数 void set_value(){ int i; cout<<"请输入10个整数"<<endl;
先看看这个题目:某整形数组中除了两个单身整数外, 其余的整数都是成对出现的, 利用C代码求出这两个单身整数. 要求: 时间复杂度o(n), 空间复杂度o(1). 我们先用最傻瓜的方式来做吧: #include <iostream> using namespace std; // 时间复杂度为o(n^2), 空间复杂度为o(1), 不符合要求 void findSoleNumbers(int a[], int n, int &e1, int &e2) { int i = 0; i
题目: 数组 A 由 1000 万个随机正整数 (int) 组成,设计算法,给定整数 n,在 A 中找出 a 和 b,使其符合如下等式: n = a + b 解题思路: 1. 1000w个随机正整数占用空间大概38-40MB,并不是很大,但是仍需要考虑如果数量级继续增大的情况.最好找到不用把数组加载到内存的方法. 2. 若n给定,则数组中大于n的数都没有用,有用的只是那些处于0和n之间的数字,所以1000w个数字其实可以缩减为长度为n的数组,但是n也可能比1000w大.这并不是解决问题的思路.
代码: /* * 将两个整型数组依照升序合并,而且过滤掉反复数组元素 */ #include <stdio.h> #define N 256 #define M 512 /* * 合并数组.删除反复的,并排序 */ int CombineBySort(int Array1[], int iArray1Num,int Array2[], int iArray2Num,int OutputArray[], int iOutputNum) { int i, j,t; int tmp; iOutput
我没有实现时间复杂度为O(n)的算法. 思路:从第一数开始,onelist[0]:onelist[0]+onelist[1]:这样依次推算出每个子数组的sum值.和max进行比较.最后得到max值. 这里需要确定一个起始节点,最开始是onelist[0]为起始节点.一直加到onelist.length. 然后从onelist[1]一直加到onelist.length. import java.util.Scanner; public class Test { public static voi
群里看到这道题,用python做了做, def find(array): v_sum = greatest = 0 for a in array: v_sum += a v_sum = 0 if v_sum < 0 else v_sum greatest = v_sum if v_sum > greatest else greatest if v_sum == 0: greatest = array[0] for a in array: greatest = a if greatest <
package te; public class StringConvert { static int[] a = {0,1,1,0,1,1,0,2}; static String s = "0011223344"; public static void main(String[] args) { StringConvert sc = new StringConvert(); System.out.println(sc.intArray2Str(a)); int[] b = sc.st
队列的数组实现,从队尾进入,对头删除. 队列长度用标志变量size,它是独立于front和rear的一个变量.size == 0,队列为空.size == capacity,满队列. 一.结点声明 struct Node{ int Capacity; int Front; int Rear; int Size; int *Array; }; typedef struct Node Queue; Capacity队列容量:Front,Rear为队列首元素和尾元素的数组下标:Size为当前队列大小: