H面试(23):求子数组最大和

一小时复习前端面试|2024年年初30道面试题冲刺金三银四 高分简历不能光靠模版。约在晚上七点半,面试官看起来很累的样子,应该是还在忙然后抽空给我面试..三个流程,自我介绍,深挖经历,反问,部门介绍,具体地:1.自我介绍2.你了解nlp哪些知。一是某头部券商,base在某二线城市二是邮储总,base北京两个地点都离家远,主要纠结的地方是券商的岗位是测试,并且在那边没有什么朋友,但发展前景很好;如题,楼主12月末面试完的,一天入池,1月初hr联系问offer情况和预期薪资,此后没有消息,直到今天1.15我去问hr,hr说我的报审批没给过,再加上部门没什。 阅读详情
题目描述:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。

例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,
因此输出为该子数组的和18。

 

#include<stdio.h>
#include<malloc.h>
#include<assert.h>

int max_subarray_sum(int * a, int num)
{   
    
	assert(a);
	int sum = 0;   //遍历数组值,存放和值
	int max =a[0];    //存放当前的子数组的最大值
    int j = 0;     //记录当前i的位置
	int i;         //遍历数组的计数器


	for(i = 0; i < num;  )  //循环遍历数组
	{
		sum = sum + a[i]; 

        if(sum > max)    //如果相加的结果大于max,就更新max,记录下当前i的位置
		{
			max = sum;
			i++;
		    j=i;
		}
		else if( sum < 0) //如果sum的值小于0,就代表之前的子数组相加结果不理想,sum归零,从下一个i开始重新算
		{
			sum = 0;
			i = j;
			i++;
		}
		else  //此处代表这,sum的值没有打过max,但sum的值也没有小于零:遇到了一个非正数,可能下个数就是更大的整数,所以继续循序
			i++;
		    j=i;
		

	}
	if(i = num-1 && max < 0)  //这个可以避免全部是负数的情况
	{
		for(i = 1; i < num; i++)
		{
			if(a[i] >max)
		     max = a[i];
		}
	}
	return max;
}

int main( )
{ 
	int a[] = {-3,-2,0};
	int num = sizeof(a)/sizeof(int);
	int max_subarray_sum = max_subarray_sum( a, num);
	printf("%d\n",max_subarrya_sum);
	return 0;
}


 

//copyright@ July   
//July、updated,2011.05.25。   
#include <iostream.h>   
#define n 4           //多定义了一个变量   
  
int maxsum(int a[n])    
//于此处,你能看到上述思路2代码(指针)的优势   
{  
    int max=a[0];       //全负情况,返回最大数   
    int sum=0;  
    for(int j=0;j<n;j++)  
    {  
        if(sum>=0)     //如果加上某个元素,sum>=0的话,就加   
            sum+=a[j];  
        else     
            sum=a[j];  //如果加上某个元素,sum<0了,就不加   
        if(sum>max)  
            max=sum;  
    }  
    return max;  
}  
  
int main()  
{  
    int a[]={-1,-2,-3,-4};  
    cout<<maxsum(a)<<endl;  
    return 0;  
}  


 

9.23荣耀二面状态码交流(附状态码查询方法) base深圳,本人技术栈C++,但整个面试过程都没有问C++的知识9.9笔试,记得挺简单,半小时做完,第二题进制转换只能过75%,调了一会儿没调出来就交了,最终。9.23线下面试,人还挺多的,约的上午9点,很快就安排了一面,面试官人也挺不错的,聊了聊技术和项目,手撕一个题没达到他预期效果二面等了大概一个小时,面试官应该是。请问各位牛油该怎么选择,23届本科毕业生,最近社招拿到了阿里高级运维的offer,但是本人做的是Java开发,听说运维没有发展前途,想咨询下网友,另外问问运维怎么样,以及阿里的运维怎么。 阅读详情

相关推荐

《零基础学C语言》第23章 面试题解析

第23章 面试题解析 不管你C语言学得有多好,也不管你是否有过工作经历,在面试前做一些准备,肯定是有备无患的。在最近流行的一些职场类培训中,“面试准备”是冲入职场的第一步。学习完本书后,笔者也希望读者能做好准备。所以本书参考了一些常见的面试题,让读者做热身准备。...

jxgy01的博客 138

几种求子集方法

增量构造法,位向量法,二进制法 #include<bits/stdc++.h> using namespace std; int a[100]; void print_sub(int* A,int cur,int n){ for(int i=0;i<cur;i++) cout<<A[i]<<' '; cout<<endl...

weixin_30867015的博客 1546

LeetCode 面试经典 150 题回顾

最经典 150 题,掌握面试所有知识点 面试经典 150 题 : 题目分析、解题思路、复杂度分析、代码展示

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 8万+

求子集

前一段时间在项目中需要用到求子集的方法,在网上看到的用bitset求子集的方法,后经改造自己写了个求子集的模板,在此记录以备后用。 用bitset求子集的原始方法: for(int i = 0; i {      bitset bit(i);      for(int j = bit.size() - 1; j >= 0; j--)          cout     cou

challanc 1633

绝对旋转编码器学习笔记(基本原理,与PC通信等,不定期更新中)

前言 最近开始学习编码器相关内容,目的在于搞清楚编码器的原理,与上位机的联系等问题。笔记资料来源为网络,整理的同时也会有一些总结和感悟。由于研究方向需求,主要研究数字旋转编码器。 1.编码器的定义 编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。——摘自《百度百科》 通常来说,编码器可以将角度位移、直线位移、转速等物理量转换为电信号。这里的电信号根据不同原理的编码器输出脉冲、二进制数码等不同的类型,下面会提到。 2.编码器的分类 编.

黑化咸鱼的博客 1万+

Mac上SSH连接神器SecureCRT:从安装到高效使用的完整指南

本文详细介绍了Mac上专业SSH连接工具SecureCRT的安装与高效使用技巧。从核心优势、会话管理到快捷键方案,全面解析如何提升远程开发与服务器管理效率。特别适合需要处理多服务器环境和复杂终端控制的Mac用户,SecureCRT的企业级加密和跨平台同步功能使其成为SSH连接的神器。

weixin_30642561的博客 495

《数据结构》之求子串

一.串(string) 是有零个或n个字符组成的有限序列,如: S=‘advj4_ ekf oskdl’ 其中S为串名,单引号引起来的是串的值,可以由字母,数字或其他字符串组成,字符的个数称为串的长度,长度为0的串为空串,字符在串中的序号(从1开始)称为字符的位置,串中任意个连续的字符组成的序列称为子串,包含子串的串称为主串,子串中第一个字符在主串中的位置称为子串的位置,下面讲述如何从主串中...

weixin_45217677的博客 1万+

避坑指南:ROS2 Humble摄像头标定常见错误排查(从‘CALIBRATE’按钮不变绿到保存文件找不到)

本文详细解析了ROS2 Humble环境下摄像头标定的常见问题及解决方案,从CALIBRATE按钮不变绿到标定文件保存失败等疑难杂症。提供硬件准备、参数设置、实时诊断到结果验证的全流程指导,特别针对Ubuntu2204系统和usb_cam驱动的兼容性问题给出实用建议,帮助开发者高效完成内参标定。

weixin_29193359的博客 398

【23】面试题29:数组中出现次数超过一半的数字

【1】题目 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 【2】思路 数组中有一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现次数的和还要多。因此我们可以考虑在遍历数组的时候保存两个值:一个是数组中的一个数字,一个是次数。当我们遍历到下一个数字的时候,如果下一个数字和我们之前保存的数字相同,则次数加1;如果下一个数字和我们之

qq_33612665的博客 194

COMSOL仿真分析高压直流GIS/GIL绝缘性能优化

高压直流气体绝缘设备(GIS/GIL)的绝缘性能是保障电网可靠运行的关键。通过COMSOL Multiphysics多物理场仿真,可以深入分析气固界面电场分布与电荷积聚机理。该技术结合静电场、热场和电荷传输耦合计算,能准确模拟温度梯度对SF6气体与环氧树脂界面特性的影响。工程实践中,这类仿真可优化导体结构设计、改进绝缘材料配方,并建立电场-温度关联预警模型。特别是在80℃高温工况下,仿真显示界面电荷密度会显著增加23%,这对设备安全运行具有重要指导价值。

weixin_32075843的博客 192

Linux内核模块开发实战指南(2025版)

2025年Linux内核模块开发迎来革命性突破!本文将从零开始手把手教你构建可动态加载的AI加速驱动模块,揭秘最新内核特性与开发技巧,更包含独家性能调优方案与跨架构移植秘籍。文末附赠价值百万的调试脚本,助你轻松突破开发瓶颈!

资深全栈架构师,乐于在 优快云 分享技术见解,与大家携手共进,共攀技术巅峰! 1811

面试题4:二维数组中的查找

剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]...

文选的blog 493

别再只设接触压力了!用ANSYS Workbench模拟O型圈密封泄漏的完整流程

本文详细介绍了在ANSYS Workbench中模拟O型圈密封泄漏的完整流程,重点解析了流体渗透压力载荷的设置与应用。通过双物理场耦合模型和精确的参数配置,帮助工程师准确评估密封性能,避免传统方法仅考虑接触压力的局限性。文章还提供了常见问题的解决方案和工程实践建议,提升密封设计的可靠性。

weixin_30372371的博客 402

华为OD-23届转行-C++面经

摘要:本文记录了作者从备考到最终通过华为面试的全过程。备考阶段耗时四周,重点准备机考和技术面试。机考遇到原题并分享经验:注意输入多样性,200分题需先完成前两道。技术面试分为HR面、技术一面和二面,涵盖八股文、项目经验和编程题(如数组排列、最大子数组等)。主管面关注团队协作、职业规划等软技能。最终1.23审批通过,特别感谢栗栗姐在部门选择和答疑上的帮助。整体耗时3个月,强调原题练习和面试技巧的重要性

2401_86909848的博客 466

openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用openclaw-cn的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

大模型复杂问答能力评测框架:从原理到实践

在人工智能领域,大语言模型(LLM)的评估是衡量其实际应用价值的关键环节。其核心原理在于通过系统化的评测框架,对模型的理解、推理、整合与表达能力进行量化分析。传统的NLP基准测试往往侧重于事实性检索或简单推理,难以全面反映模型在应对多跳推理、隐含条件、长上下文整合等复杂现实任务时的真实性能。因此,专门针对复杂问答设计的评测技术应运而生,其价值在于为模型选型、效果优化和瓶颈诊断提供数据驱动的科学依据。该技术广泛应用于需要深度逻辑判断的业务场景,如智能投顾、法律咨询、医疗诊断等。本文聚焦的`tan92hl/Co

weixin_28679635的博客 362

求最大子数组

BOPGroup的专栏 791

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

面试题演练9-23

一面,上午11点,1小时 (1)现场笔试,写一个lower_bound 二分查找,慢慢写 (2)new和delete过程,顺序 过程 (3)static作用 修饰变量,修饰函数,C++ (4)虚函数内容,为什么要虚析构 (5)BST,AVL,红黑树 (6)vector的扩容,时间复杂度,扩容大小选择 (7)实现双端队列,O(1)时间复杂度下标读取 (8)进程和线程,单核...

wwxy1995的博客 1713

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

力扣[LeetCode]-面试150Java代码实现

为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

kearily的博客 1222

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【剑指Offer学习】【所有面试题汇总】

剑指Offer学习   剑指Offer这本书已经学习完了,从中也学习到了不少的东西,现在做一个总的目录,供自已和大家一起参考,学如逆水行舟,不进则退。只有不断地学习才能跟上时候,跟得上技术的潮流! 所有代码下载【https://github.com/Wang-Jun-Chao/coding-interviews】 目录 第01-10题 【剑指Offer学...

asdfrt8686的博客 177

反转数组

昨天老赵给了篇文章《为什么我要反对北大青鸟》,回想起刚毕业那会儿为了生计差点儿进北大青鸟做讲师,差点儿害人害已。细想来我还是幸运的。老赵在文章中提到:如果不能将一个数组反转,还能叫程序员吗? 我细细想来,我从写程序到现在还真没有做过这样的事。我进入程序员行业中学习的是C++语言,但除了写些东西玩玩外,平时已经不用了,更确切地说:不太会用了。有些语法已经需要翻《C++ Primer》,这也使我诚惶...

weixin_30515513的博客 198

题解 | #创建二维动态数组#

我在牛爱网找对象# #牛爱网# #晒一晒我的offer# #如何看待offer收割机的行为# 看缘分找对象(女),男01年,181,75,签约了江西国企(10。实习背景:沐瞳-游戏客户端开发------第一周:刚进去公司的第一周,唯唯诺诺,生怕得罪人,拉公司项目不会,不会用svn,公司项目不知道如何启动,代码不知道从哪。实习背景:沐瞳-游戏客户端开发------第五周:活少,了解了服务器数据,发送规则,UI部分框架(吐槽一下,真该死啊,一堆代码看不头),任务跳转,活动机制---

每天多一点干货 947

php面试编程题

最近在参加一些面试,总结一些面试题 题一 字符串 ‘abbcccddddeef’ 输出成 a1b2c3d4e2f1 字符串计数 我的做法:把字符串用str_split($str,1) 转换成数组 然后键与值互换 array_flip函数 通过两个循环进行字母的比对记录个数 $str = 'abbcccddddeef'; getData($str); function getData($str...

of_cause的博客 1135
上一篇: H面试(22):设计一个栈,能输出当前栈中最小元素
下一篇: H面试(21):在一个升序数组找两数之和
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值