剑指offer例题分享--7
前言:继续前面的分享...
面试题31:
代码如下:
#include<iostream> #include<limits.h> using namespace std;bool g_InvalidInput = false;int FindGreatestSumOfSubArray(int *data,int len) {if(data==NULL || len<=0){g_InvalidInput = true;return 0;}int curnum = 0;//整型最小值//int greatestnum = 0x80000000;int greatestnum = INT_MIN;for(int i=0;i<len;++i){if(curnum <= 0)curnum = data[i];elsecurnum += data[i];if(curnum > greatestnum)greatestnum = curnum;}return greatestnum; }int main() {int data[]={1,-2,3,10,-4,7,2,-5};cout << "max: " << FindGreatestSumOfSubArray(data,8) << endl;return 0; }
面试题37:
代码如下:
/*************************************************************************> File Name: 37.cpp> Author: ma6174> Mail: ma6174@163.com > Created Time: Tue 14 Aug 2018 04:41:52 PM CST************************************************************************/#include<iostream> #include<algorithm> #include<iterator> #include<string> #include<list> #include<stdio.h> using namespace std;struct ListNode {int data;struct ListNode *next; } ;typedef struct ListNode linknode_t; typedef struct ListNode* linklist_t; linknode_t *CreateLink() // 创建空的链表 返回值 链表的首地址 { linknode_t *H;H = (linklist_t)malloc(sizeof(linknode_t)); H->next = NULL;return H; } void InitLink(linknode_t *H,int n) // 初始化一个空的链表 {linknode_t *r, *p;int i;r = H; // r 指向 队尾位置 for(i = 0; i < n; i++){p = (linknode_t *)malloc(sizeof(linknode_t));p->data = i+1;p->next = NULL; // 没有下一个节点r->next = p; // 将p 放在 r 的后面r = p; // r 指向新的队尾 }} void ShowLink(linknode_t* H) // 从队首->队尾 打印所有节点 {struct ListNode *p;p = H->next;while(p != NULL){printf("%d --> ", p->data);p = p->next; }printf("\n"); }unsigned int GetListLength(ListNode *pHead) {unsigned int len = 0;ListNode *pNode = pHead;//pNode = pNode->next;while(pNode->next != NULL){++len;pNode = pNode->next;}return len; }ListNode *FindFirstCommonNode(ListNode *pHead1,ListNode *pHead2) {//得到链表长度unsigned int len1 = GetListLength(pHead1);cout << "len1: " << len1 << endl;unsigned int len2 = GetListLength(pHead2);cout << "len2: " << len2 << endl;int nLengthDif = len1 - len2;ListNode *pListHeadLong = pHead1;ListNode *pListHeadShort = pHead2;if(len2 > len1){pListHeadLong = pHead1;pListHeadShort = pHead2;nLengthDif = len2 - len1;}//现在长链表走几步,再同时在两个链表上同时遍历for(int i=0;i<nLengthDif;++i)pListHeadLong = pListHeadLong->next;while((pListHeadLong!=NULL)&&(pListHeadShort!=NULL)&&(pListHeadLong!=pListHeadShort)){pListHeadLong = pListHeadLong->next;pListHeadShort = pListHeadShort->next;}//得到第一个公共节点ListNode *CommonNode = pListHeadLong;//cout << "data: " << CommonNode->data << endl;return CommonNode; }int main() {linknode_t *H = CreateLink();InitLink(H,5);ShowLink(H);linknode_t *H1 = CreateLink();InitLink(H1,3);ShowLink(H1);ListNode *node = FindFirstCommonNode(H,H1);if(node != NULL)cout << "data: " << node->data << endl;else cout << "no CommonNode!" << endl;return 0; }
转载于:https://www.cnblogs.com/liudw-0215/p/9476797.html
剑指offer例题分享--7相关推荐
- 剑指offer例题——二维数组中的查找
//实现一个函数,将一个字符串的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public cla ...
- 剑指offer例题5—逆序输出链表
使用递归: #include<iostream> using namespace std; struct ListNode {int value;ListNode *next; }; vo ...
- python小技巧:求32位二进制负数的补码,附剑指offer中的应用
实现方法: 先上操作,python里面的负数直接将其和 0xffffffff 进行 与(&) 操作即可得到其补码: def func(n):if n<0:n=n&0xffffff ...
- 《剑指offer》每日分享三道题- 2 day
<剑指offer>系列第二弹,让我们用饱满的热情,迎接接下来的几道小题. >本系列分享的都是常规做法和全新思路的总结,各位可千万不要看着眼熟,而错过新颖的思路噻!!! 文章目录 1. ...
- 最新算法校招编程-剑指offer、Leetcode常考题目及解法分享
本资源整理了BAT.TMD等互联网算法岗校招面试过程中常考的LeetCode和剑指offer编程题:此外,还整理了部分百度.腾讯.阿里.今日头条相关的面试经验,对于正准备校招面试的同学非常值得参考复习 ...
- 剑指OFFER思路总结与代码分享——树篇(Java实现)
剑指OFFER树相关 55-1 二叉树的深度 27 二叉树的镜像 54 二叉搜索树的第K大节点 32-II 从上到下打印二叉树 07 重建二叉树 68-I 二叉搜索树的最近公共祖先 68-II 二叉树 ...
- 算法题001 剑指Offer 面试题三:二维数组中的查找
剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...
- 剑指offer(1-10题)详解
文章目录 01二维数组的查找 02替换空格 03从尾到头打印链表 04重建二叉树★ 05 用两个栈实现队列 06旋转数组的最小数字 07 斐波那契数列 08 跳台阶 09 变态跳台阶★ 10 矩阵覆盖 ...
- 【送书福利8本】YYDS《剑指Offer》,百万程序员人手一册
程序员面试应该看什么书? 博文菌必须毫不犹豫地首推<剑指Offer>这本程序员面试圣经. 这可不是博文菌信口拈来的回答,看看广大网友们的反馈,就知道这是经过读者朋友们认证的事实!( PS: ...
- java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...
推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...
最新文章
- RemoteFX原理简介
- P2P征信 大数据堪当重任?
- apache 与 php-fpm 几种处理方式
- SQL语言之数据定义语言(Oracle)
- 自定义View 中很关键的问题View获取宽/高是0 的解决办法
- 如何诊断crs 安装时 root.sh 脚本执行错误
- 产品配件类目税目分类_我国消费税税目种类有哪些?
- 【OpenCV 例程200篇】25. 图像的平移
- 虚拟机访问本地mysql_MySQL高可用之主从复制
- Jquery取得iframe中元素的几种方法(转载)
- 在c语言程序中可把整型数,C语言程序设计(2).doc
- MongoDB在windows下的安装步骤:
- “虚拟化 ”和“云计算”计算机技术新概念
- 阿里云服务器Java+Mysql+Tomcat环境搭建(Mac OS下配置)
- 计算机485通讯原理,串口通信原理详解.ppt
- Clock skew detected. Your build may be incomplete
- 给华为服务器RH2288V3(hm23-03)安装驱动
- android外接手机模拟器,HBuilderX 连接网易mumu手机模拟器进行App开发
- uni-app中如何引入uview-ui?
- python迭代法求极值_用Python实现最速下降法求极值的方法
热门文章
- 图像局部特征(九)--斑点检测LOG算子
- linux nvm node 权限不够_centos部署node+mongodb环境
- CentOS安装lynis安全漏洞扫描工具
- cemtos7重置mysql root,Centos7重置MySQL8.0 root密码
- Flume 知识点总结
- Zephyr_overlay文件讲解
- 基于markdown消息类型实现钉钉报警,让感官更舒服
- Mysql--Auto_increment详解
- 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
- linux ubuntu 安装 SSH