文档章节

基础算法----找出集合中最大和值的子数组,插入排序,找出数组中出现最多的元素

春哥大魔王的博客
 春哥大魔王的博客
发布于 2017/02/27 14:05
字数 356
阅读 27
收藏 0
点赞 0
评论 0

玩法

给定数组,包含正负整数,找出对应和值最大的子数组;

解法

一个数只有加上大于0的正整数才会越来越大,否则遇到小于0的负整数重新计数;

实现

int[] arr = { 3, -6, 1, 2, 3, -1, 2, -5, 1, 2 };

#region 找出最大加值子数组
static string maxSubArr(int[] arr)
{
    int sum = 0;
    int start = 0;
    int end = 0;
    int temp = 0;
    for (int i = 0; i < arr.Length; i++)
    {
        if (temp < 0)
        {
            start = i;
            temp = arr[i];
        }
        else
        {
           temp += arr[i];
        }
        if (sum < temp)
        {

            sum = temp;
            end = i;
        }
     }
    return start + "," + end;
}
#endregion

// start和end是子串头尾的两个坐标

输出

1,2,3,-1

找出数组的正左负右

给定数组包含正负整数,如何将正整数放左,负整数放右。可采用插入排序;

实现

static int[] arr3 = { 1, -2, -4, 5, 6, -3, -8, 6 };

static void leftOrRight2(int[] arr)
 {
    int start = 0;
    int end = arr.Length - 1;
    while (start != end)
    {
        while (start < end && arr[start] < 0)
        {
            start++;
        }
        while (start < end && arr[end] >= 0)
        {
            end--;
        }
        if (start < end)
        {
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
    }
}

找出数组中出现最多的元素

static int[] arr4 = { 0, 2, 2, 1, 2, 0, 2, 0 };

#region 找到数组中出现最多的元素
static void findMaxDisplay(int[] arr)
{
    int v = arr[0];
    int c = 0;
    for (int i = 0; i < arr.Length; i++)
    {
        if (v == arr[i])
        {
           c++;
        }
        else
        {
            c--;
        }
        if (c == 0)
        {
            v = arr[i];
            c = 1;
         }
    }

    System.Console.WriteLine(v);
}
#endregion

源码

http://git.oschina.net/aspnet/Suan-Fa

© 著作权归作者所有

共有 人打赏支持
春哥大魔王的博客
粉丝 17
博文 123
码字总数 70008
作品 0
海淀
程序员
前端面试中的常见的算法问题

0. 前言 重要:如果文章内部有图片无法显示,请移步简书 查看。 今天在刷文章的时候,突然看到了一篇专门分享前端面试算法的文章。 趁着现在有时间,赶紧和大家分享一波。 下面直接开始正文。...

mr_lp
2016/12/23
0
0
大数据处理面试题

给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 方an1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将...

zyt_1978
2016/04/14
130
0
海量数据面试题整理1.给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是

海量数据面试题整理   1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?   方案1:可以估计每个文件安的大小为50G×64=320G,远远...

今幕明
2015/01/30
0
0
海量数据处理:十道面试题与十个海量数据处理方法总结

1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射...

ahucsxl
2015/10/08
165
0
十道海量数据处理面试题与十个方法大总结

海量数据处理:十道面试题与十个海量数据处理方法总结 本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。 出处:http://blog.csdn.net/vJULYv。 第一部分、十道海量数据处理面试题...

吟啸_徐行
2014/04/02
0
2
Android 面试文档分享

一、概述 最近在准备面试的东西,整理了一些读书笔记分享给各位 百度网盘地址,大家可以自由下载,以下内容完全原创。 前两部分是对于一些 经典书籍的读书笔记 和 面试题,都是上学看书的时候...

泽毛
2017/11/10
0
0
JDK源码笔记-DualPivotQuicksort

参考自:论文,Dual-Pivot Quicksort algorithm ,by Vladimir Yaroslavskiy。 http://www.sytarena.com/javajswz/20140217/1329.html DualPivotQuicksort中文名称:双支点快速排序。 DualPi......

赵小宾
2014/10/09
0
0
接触并理解 快速排序【基础+优化+三向切分】

要点 算法思想与实现,优化思路,性能分析,三向切分,空间,优势 前言 快速排序之所以被称作“快速”,是因为快速排序是我们接触到的最快的通用排序算法,至于原因我们会在后面予以解释。鉴...

LWADE
2017/12/07
0
0
归并排序与快速排序的简明实现及对比

前言 归并排序与快速排序是两种有实际应用的排序算法,它们有一些共同的特点,整体思路上也比较相近。本文会从更简单的一些排序算法开始,过渡到归并排序和快速排序的实现,并对它们做一些简...

天方夜
07/04
0
0
Java实现的几个常用排序算法详细解读

排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料。 废话不多说,下面逐一看看经典的排序算法: 1. 选择排序 选择排序的基本思...

xiahuawuyu
2012/10/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spark Streaming + Kafka Integration Guide

The Spark Streaming integration for Kafka 0.10 is similar in design to the 0.8 Direct Stream approach. It provides simple parallelism, 1:1 correspondence between Kafka partition......

刺猬一号
9分钟前
0
0
数据结构与算法2

一个数组的例子,实现查找,显示和删除的功能。 在这个数组中存储的数据类型是long型,使用long型为的是表明这是数据,而int型被用来表示下标。通常数据结构存储的数据项包含有好几个字段,所...

沉迷于编程的小菜菜
19分钟前
0
0
Python3 基于 requests 批量下载图片

Python3 基于 requests 批量下载图片 import requestsheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encod......

leeyi
20分钟前
0
0
java获取当前时间所在一周的周一和周日日期

/** * 当前时间所在一周的周一和周日时间 * @param time 当前时间 * @return */ public static Map getWeekDate(String time) { Map map = new HashedMap(); SimpleDateFormat sdf = new Si......

小弱鸡
52分钟前
0
0
Redis数据的导出和导入(dump和load方式)

网上有些文章已经不再适用,本人也是踩了些坑,在此记录下。 迁移redis数据一般有如下3种方式: 第三方工具redis-dump,redis-load aof机制,需要开启aof功能 rdb存储机制 这里介绍第一种方式...

iplusx
57分钟前
2
0
ElasticSearch 高亮显示大文档搜索结果

2016年12月,我们开始研究Ambar——一个文档搜索系统。Ambar使用ElasticSearch作为核心搜索引擎。 在Ambar开发的过程中,我们处理了很多与ES相关的问题,我们想分享我们得到的宝贵经验。让我...

九州暮云
今天
1
0
Python 使用 pywifi 模块 破解wifi密码

git https://github.com/awkman/pywifi 常见常量 from pywifi import const# Define interface status.IFACE_DISCONNECTED = 0IFACE_SCANNING = 1IFACE_INACTIVE = 2IFACE_CONNEC......

阿豪boy
今天
2
0
phpstorm使用Iedis

phpstorm的redis插件Iedis是真好用 看了网上挺多的文章,但是由于我系统还是ubuntu,就有点尴尬了,现在破解之后,留个笔记,即使自己之后有需要也可以很快翻阅 先下载资源 资源下载 zip压缩...

贤郎--均灵
今天
0
0
第三章 spring-bean之FactoryBeanRegistrySupport(4)

前言 从FactoryBeanRegistrySupport类的名字可以看出FactoryBeanRegistrySupport负责FactoryBean的注册与支持。如果想知道FactoryBean相关的资料,请阅读spring-bean中关于FactoryBean的解读...

鸟菜啊
今天
0
0
CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部