滴滴笔试编程_chmodzora的博客-程序员秘密

技术标签: 数据结构  

最大连续子序列

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;

    }

}

这个是有漏洞的,没考虑到重复数字的情况
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chmodzora/article/details/77609041

智能推荐

数论——质数筛法_weixin_30815469的博客-程序员秘密

一、埃拉托斯特尼(Eratosthenes)筛法算法思想:  要得到自然数n以内的全部素数,必须把不大于的所有素数的倍数剔除,剩下的就是素数。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......。模板题链接:筛质数代码实现...

Maven 聚合(modules标签)与继承(parent标签)的笔记_guanmengying的博客-程序员秘密

聚合(modules标签)与继承(parent标签)的关系  1.聚合主要是为了方便快速构建项目,继承主要是为了消除重复配置;  2.对于聚合模块而言,它知道有哪些被聚合的模块,但那些被聚合的模块不知道这个聚合模块的存在;对于继承的父pom而言,它不知道有哪些子模块继承它,          但那些子模块都必须知道自己的父POM是什么;  3.聚合POM与继

文件比较工具-BCompare的简单使用_抗内卷程序员的博客-程序员秘密

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_EliteA1的博客-程序员秘密

Error : your appear to running an x server;please exit x before installing .for further details

【数据分析】2019北京积分落户数据分析_紫雪凝香的博客-程序员秘密

一文了解2019年北京落户形式如何,怎样的年龄、怎样的积分值、什么样的工作单位落户成功率较高,希望对想要通过积分落户的朋友形成指导,大概几年能达到积分落户要求,也希望对准备在2020年申请积分落户的朋友有些许帮助。

[error][/usr/local/share/perl5/MHA/Server.pm, ln242] Getting relay log directory or current relay l..._weixin_33937499的博客-程序员秘密

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...

随便推点

STM32兴趣篇二:模拟汽车OBD接口处的CAN收发信号实验_obd车辆信号模拟串口_天亮继续睡的博客-程序员秘密

记录一下,方便以后翻阅~CAN总线是汽车电子上不可缺少的技术,虽然现在有些造车新势力开始采用以太网来逐步取代CAN总线的地位,但是CAN总线先天的优势(成本低,安全性好,稳定性好),让其霸占汽车总线的巅峰,也必然有着其过人之处。个人比较看好未来是由CAN总线和以太网两者互相并存的车载网络解决方案。...

MyEClipse环境配置(详解)_阿丫000的博客-程序员秘密

作为一个编程小person,居然每次都在各种工具软件的环境配置上花费好长时间,实在不能容忍。再这样下去,自己都要嘲笑自己了。so,为了避免这种尴尬情况的再次发生,决定还是记录一下吧。 反正就把遇到的一些需要注意的东西给列一下吧! 1、首先,MyEclipse是需要付费使用的,但是都不想付费,那就去网上下载破解版的吧。我自己用的是myEclipse10破解版。本来想把资源上传,但是因为太大不

【复杂网络】复杂网络多种算法及工具应用集合_CS正阳的博客-程序员秘密

半山冬雨半生忧,一杯清茶难入喉,山中本事清净地,奈何俗人一身愁

flutter android apk打包_勤劳@小蚂蚁的博客-程序员秘密

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 3.x高效前端开发(视频教学版)》介绍_循序渐进vue.js 3前端开发实战 pdf_新知图书的博客-程序员秘密

本书通过对Vue.js示例和综合案例的介绍与演练,使读者快速掌握Vue.js3.x框架的用法,提高Web前端的实战开发能力。本书配套示例源码、PPT课件、教学教案、同步教学视频、习题及答案、其他资源与答疑服务。本书内容本书共分17章,内容包括Vue.js3.x基本概念、创建Vue.js实例、Vue.js的插值语法、精通指令、计算属性、v-bind及class与style绑定、表单与v-model双向绑定、精通监听器、事件处理、过渡和动画效果、组件和组合API、虚拟DOM和render()函数、精..

密码学期末复习_AG9GgG的博客-程序员秘密

密码学期末复习直接导入的本地md,图片加载不出来,pdf下载:第一讲:绪论密码的含义及其主要功能含义:密码学是一个非常庞大而复杂的信息处理系统,涉及信息的机密性、完整性、认证性、不可否认性等许多方面,属于信息安全范畴。主要功能:机密性:是指保证信息不被泄露给非授权的用户或实体,确保存储的信息和传输的信息仅能被授权的各方得到,而非授权用户及时得到信息也无法知晓信息内容,不能使用。...

推荐文章

热门文章

相关标签