【动态规划,求数组不相邻数字的最大子串值】教程文章相关的互联网学习教程文章

返回一个整数数组中最大的子数组的和【代码】【图】

#include<iostream> usingnamespace std; #define N 1000 int main() {int i,j;int num,value,max=0;int val[N];int Array[N];int firstNum=0,lastNum=0;cout<<"输入数的个数:";cin>>num;for(i=0;i<num;i++){cin>>val[i];}value=0;for(i=0;i<num;i++){value=value+val[i];if(value>max){max=value;lastNum=i;}if(value<0){value=0;firstNum=i+1;}}if(max==0){max=val[0];firstNum=0;lastNum=0;for(j=0;j<num;j++){if(max<val[j]){...

数据结构之数组【代码】

数组本身就是一种数据结构,他是对线性表的一种扩充数组主要用于对矩阵的压缩和表示 一.特殊矩阵的压缩 二.稀疏矩阵的压缩      1.三元组表示法:#include<stdio.h> #define MAXSIZE 1000 typedef int ElemType; //定义一种结构体记录每个压缩后的非零点在原矩阵中的行下标和列下标,以及数据 typedef struct Node{int row,col;ElemType data; }Triple; //定义一种结构体:新的压缩矩阵,包含所有原矩阵非零点的数组, //原矩...

树状数组区间更新区间查询以及gcd的logn性质【代码】

题目描述给你一个长为n的序列am次查询每次查询一个区间的所有子区间的gcd的和mod1e9+7的结果输入描述:第一行两个数n,m之后一行n个数表示a之后m行每行两个数l,r表示查询的区间输出描述:对于每个询问,输出一行一个数表示答案示例1输入5 7 30 60 20 20 20 1 1 1 5 2 4 3 4 3 5 2 5 2 3输出30 330 160 60 120 240 100说明[1,1]的子区间只有[1,1],其gcd为30[1,5]的子区间有:[1,1]=30,[1,2]=30,[1,3]=10,[1,4]=10,[1,5]=10[2,2]=60,[2...

后缀数组构造【代码】

读了罗穗的论文,终于知道后缀数组怎么构造了,还反复打了五遍,打得很痛苦才最终理解。  终于体会到XY的痛苦了。实在是一篇OI生涯中最难懂的代码orz看来两天。一下是经过稍微加长的稍微易理解的代码(其实差不多好吧)。  具体注释看 网址 1 #include<cstdio>2 #include<string.h>3 #include<iostream>4usingnamespace std;5 6struct suffix_array7{8constlong N;9long *sa,*sa2,*hgt,*rk,n; 10char *str; 11 suffix_array...

后缀数组【代码】

目录后缀数组构造 - 倍增法用途 - LCP(最长公共前缀)height 数组引理及证明引理LCP-Lemma定理LCP-Theorem后缀数组对于给定的字符串\(s\),构建两个数组\(sa\)和\(rk\),其中\(rk[i]\)表示\(s[i,n]\)在\(s\)的所有后缀中的字典序排名,\(sa[i]\)则表示排名\(i\)的后缀的最左端位置。容易发现有\(sa[rk[i]]=rk[sa[i]]=i\)。构造 - 倍增法一般来说,我们用倍增法\(O(n\log n)\)构建出\(rk\)数组就可以了。我们倍增考虑的长度\(k\)。当...

Leetcode 945 使数组唯一的最小增量 贪心【代码】

地址 https://leetcode-cn.com/problems/minimum-increment-to-make-array-unique/给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。返回使 A 中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2] 输出:1 解释:经过一次 move 操作,数组将变为 [1, 2, 3]。 示例 2:输入:[3,2,1,2,1,7] 输出:6 解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。 可以看出 5 次或 5 次以下的 move 操作是不能让数...

977.leetcode_有序数组的平方【代码】

思路一:暴力解法,直接平方,然后添加到vector中class Solution { public:vector<int> sortedSquares(vector<int>& A) {vector<int> res;if(A.size()==0){return res;}for(auto i:A){res.push_back(i*i);}sort(res.begin(),res.end());return res;} }; 思路二:原文:https://www.cnblogs.com/tianjiale/p/11069036.html

和至少为K的最短子数组

返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K如果没有和至少为 K 的非空子数组,返回 -1 。示例 1:输入:A = [1], K = 1 输出:1示例 2:输入:A = [1,2], K = 4 输出:-1示例 3:输入:A = [2,-1,2], K = 3 输出:31 <= A.length <= 50000 -10 ^ 5 <= A[i] <= 10 ^ 5 1 <= K <= 10 ^ 9 这道题的关键在于我们要知道各个区间的和。从而来判断哪个区间的和是满足要求的。用暴利解法逐个判断是可行的,但是耗费的时间...

421. Maximum XOR of Two Numbers in an Array 数组中两个数的最大异或【代码】

Given a non-empty array of numbers, a0, a1, a2, … , an-1, where 0 ≤ ai < 231.Find the maximum result of ai XOR aj, where 0 ≤ i, j < n.Could you do this in O(n) runtime?Example:Input: [3, 10, 5, 25, 2, 8]Output: 28Explanation: The maximum result is 5 ^ 25 = 28. classSolution:def findMaximumXOR(self, nums):""" :type nums: List[int] :rtype: int """ head = self.buildTrie...

反转数组【代码】

反转数组 package com.zxm.array;public class ArrayDemo4 {public static void main(String[] args) {int[] a = {1, 2, 3, 4, 5};int[] reverse = reverse(a);printArray(reverse);}public static int[] reverse(int[] a) {int[] result = new int[a.length];for (int i = 0, j = a.length - 1; i < a.length; i++, j--) {result[j] = a[i];}return result;}public static void printArray(int[] a){for(int i=0;i<a.length;i++){...

FLEX 集合数组ArrayCollection操作实例【代码】

FLEX 集合数组ArrayCollection操作实例<?xml version="1.0" encoding="utf-8"?> <!-- Simple example to demonstrate the Halo DataGrid control. --> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"xmlns:s="library://ns.adobe.com/flex/spark"xmlns:mx="library://ns.adobe.com/flex/mx"><fx:Script><![CDATA[import mx.collections.ArrayCollection;//添加对象publicfunction insertCollection():void{//方法1//一个...

3.2.2多维数组 3.3 排序【代码】

例3.5 利用不规则的二维数组存储数据,输出杨辉三角形 1//杨辉三角形 2publicclass ArrayYanghui3{4publicstaticvoid main (String [] args)5 {6int i, j;7int yanghui[] []= {{1}, {1,1}, {1, 2, 1}, {1, 3, 3, 1}, {1,4,6,4,1}};8for (i = 0; i < yanghui.length - i; i++)9 { 10for (j = 0; j < yanghui.length - i; j++) 11 System.out.print(" "); 12for (j = 0; j < yanghui [i].length; j++) 13 ...

构建乘积数组【代码】

题目描述给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 1class Solution {2public:3 vector<int> multiply(const vector<int>& A) {4 vector<int> result,result1,result2;5if (A.size() == 0)6return result;7if(A.size() == 1)8 {9 result.push_back(0); 10return result; 11 } 12 resul...

<LeetCode>88. 合并两个有序数组【代码】

题目传送阵 class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int p=m+n-1; //指向nums1数组的末尾int i=m-1,j=n-1; //分别指向nums1,nums2的最后一个元素while(i>=0 && j>=0){if(nums1[i]>nums2[j]){nums1[p--]=nums1[i--];}else{nums1[p--]=nums2[j--];}//nums1[p--]=nums1[i]>nums2[j]?nums1[i--]:nums2[j--];}while(j>=0){nums1[p--]=nums2[j--];}} }

判断数组中是否有相同的项【代码】

// 判断数组中是否有同一项,例如:["111","22","33","111"] 返回true export const isRepeat = arr => {var hash = {}for (var i in arr) {if (hash[arr[i]])//hash 哈希returntruehash[arr[i]] = true}returnfalse } 原文:https://www.cnblogs.com/wuqilang/p/13232134.html