技术标签: 数据结构
最大连续子序列
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
String str = scanner.nextLine();
String [] arr = str.split(" ");
int [] array = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
array[i] = Integer.parseInt(arr[i]);
}
System.out.println(findGreatestSumOfSubArray(array));
}
public static int findGreatestSumOfSubArray(int[] array) {
if(array.length==0)
return 0;
else{
int total=array[0],maxSum=array[0];
for(int i=1;i<array.length;i++){
if(total>=0)
total+=array[i];
else
total=array[i];
if(total>maxSum)
maxSum=total;
}
return maxSum;
}
}
}
无序数组找到第K大的数
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] ss = in.nextLine().split(" ");
int[] array = new int[ss.length];
for(int i =0;i<ss.length;i++) {
array[i]=Integer.parseInt(ss[i]);
}
int K = in.nextInt();
System.out.println( findKthLargest(array,K));
}
public static int findKthLargest(int[] nums, int k) {
if (k < 1 || nums == null) {
return 0;
}
return getKth(nums.length - k + 1, nums, 0, nums.length - 1);
}
public static int getKth(int k, int[] nums, int start, int end) {
int pivot = nums[end];
int left = start;
int right = end;
while (true) {
while (nums[left] < pivot && left < right) {
left++;
}
while (nums[right] >= pivot && right > left) {
right--;
}
if (left == right) {
break;
}
swap(nums, left, right);
}
swap(nums, left, end);
if (k == left + 1) {
return pivot;
} else if (k < left + 1) {
return getKth(k, nums, start, left - 1);
} else {
return getKth(k, nums, left + 1, end);
}
}
public static void swap(int[] nums, int n1, int n2) {
int tmp = nums[n1];
nums[n1] = nums[n2];
nums[n2] = tmp;
}
}
这个是有漏洞的,没考虑到重复数字的情况一、埃拉托斯特尼(Eratosthenes)筛法算法思想: 要得到自然数n以内的全部素数,必须把不大于的所有素数的倍数剔除,剩下的就是素数。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......。模板题链接:筛质数代码实现...
聚合(modules标签)与继承(parent标签)的关系 1.聚合主要是为了方便快速构建项目,继承主要是为了消除重复配置; 2.对于聚合模块而言,它知道有哪些被聚合的模块,但那些被聚合的模块不知道这个聚合模块的存在;对于继承的父pom而言,它不知道有哪些子模块继承它, 但那些子模块都必须知道自己的父POM是什么; 3.聚合POM与继
https://blog.csdn.net/weixin_40096176/article/details/79128452
Error : your appear to running an x server;please exit x before installing .for further details
一文了解2019年北京落户形式如何,怎样的年龄、怎样的积分值、什么样的工作单位落户成功率较高,希望对想要通过积分落户的朋友形成指导,大概几年能达到积分落户要求,也希望对准备在2020年申请积分落户的朋友有些许帮助。
MHA切换后检查主从复制出现:[[email protected] logs]# masterha_check_repl -conf=/etc/mha/10.66.150.117.cnf Tue Mar 14 12:27:23 2017 - [info] Reading default configuratoins from /etc/masterh...
记录一下,方便以后翻阅~CAN总线是汽车电子上不可缺少的技术,虽然现在有些造车新势力开始采用以太网来逐步取代CAN总线的地位,但是CAN总线先天的优势(成本低,安全性好,稳定性好),让其霸占汽车总线的巅峰,也必然有着其过人之处。个人比较看好未来是由CAN总线和以太网两者互相并存的车载网络解决方案。...
作为一个编程小person,居然每次都在各种工具软件的环境配置上花费好长时间,实在不能容忍。再这样下去,自己都要嘲笑自己了。so,为了避免这种尴尬情况的再次发生,决定还是记录一下吧。 反正就把遇到的一些需要注意的东西给列一下吧! 1、首先,MyEclipse是需要付费使用的,但是都不想付费,那就去网上下载破解版的吧。我自己用的是myEclipse10破解版。本来想把资源上传,但是因为太大不
半山冬雨半生忧,一杯清茶难入喉,山中本事清净地,奈何俗人一身愁
flutter android apk打包生成签名密钥创建key.properties文件把签名配置加入到项目的 gradle 配置中生成发行 APK 包生成签名密钥进入到密钥存放目录(比如G盘),在cmd窗口输入以下命令:keytool -genkey -v -keystore G:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。
本书通过对Vue.js示例和综合案例的介绍与演练,使读者快速掌握Vue.js3.x框架的用法,提高Web前端的实战开发能力。本书配套示例源码、PPT课件、教学教案、同步教学视频、习题及答案、其他资源与答疑服务。本书内容本书共分17章,内容包括Vue.js3.x基本概念、创建Vue.js实例、Vue.js的插值语法、精通指令、计算属性、v-bind及class与style绑定、表单与v-model双向绑定、精通监听器、事件处理、过渡和动画效果、组件和组合API、虚拟DOM和render()函数、精..
密码学期末复习直接导入的本地md,图片加载不出来,pdf下载:第一讲:绪论密码的含义及其主要功能含义:密码学是一个非常庞大而复杂的信息处理系统,涉及信息的机密性、完整性、认证性、不可否认性等许多方面,属于信息安全范畴。主要功能:机密性:是指保证信息不被泄露给非授权的用户或实体,确保存储的信息和传输的信息仅能被授权的各方得到,而非授权用户及时得到信息也无法知晓信息内容,不能使用。...