前言:继续前面的分享...

  面试题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相关推荐

  1. 剑指offer例题——二维数组中的查找

    //实现一个函数,将一个字符串的每个空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. public cla ...

  2. 剑指offer例题5—逆序输出链表

    使用递归: #include<iostream> using namespace std; struct ListNode {int value;ListNode *next; }; vo ...

  3. python小技巧:求32位二进制负数的补码,附剑指offer中的应用

    实现方法: 先上操作,python里面的负数直接将其和 0xffffffff 进行 与(&) 操作即可得到其补码: def func(n):if n<0:n=n&0xffffff ...

  4. 《剑指offer》每日分享三道题- 2 day

    <剑指offer>系列第二弹,让我们用饱满的热情,迎接接下来的几道小题. >本系列分享的都是常规做法和全新思路的总结,各位可千万不要看着眼熟,而错过新颖的思路噻!!! 文章目录 1. ...

  5. 最新算法校招编程-剑指offer、Leetcode常考题目及解法分享

    本资源整理了BAT.TMD等互联网算法岗校招面试过程中常考的LeetCode和剑指offer编程题:此外,还整理了部分百度.腾讯.阿里.今日头条相关的面试经验,对于正准备校招面试的同学非常值得参考复习 ...

  6. 剑指OFFER思路总结与代码分享——树篇(Java实现)

    剑指OFFER树相关 55-1 二叉树的深度 27 二叉树的镜像 54 二叉搜索树的第K大节点 32-II 从上到下打印二叉树 07 重建二叉树 68-I 二叉搜索树的最近公共祖先 68-II 二叉树 ...

  7. 算法题001 剑指Offer 面试题三:二维数组中的查找

    剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...

  8. 剑指offer(1-10题)详解

    文章目录 01二维数组的查找 02替换空格 03从尾到头打印链表 04重建二叉树★ 05 用两个栈实现队列 06旋转数组的最小数字 07 斐波那契数列 08 跳台阶 09 变态跳台阶★ 10 矩阵覆盖 ...

  9. 【送书福利8本】YYDS《剑指Offer》,百万程序员人手一册

    程序员面试应该看什么书? 博文菌必须毫不犹豫地首推<剑指Offer>这本程序员面试圣经. 这可不是博文菌信口拈来的回答,看看广大网友们的反馈,就知道这是经过读者朋友们认证的事实!( PS: ...

  10. java统计一个字符串中每个字符出现的次数_剑指offer算法题054:字符流中第一个不重复的字符...

    推荐阅读:宇宙条的工作总结:一年前还在面试找工作,一年后在面试找工作的学弟学妹们:第一次当面试官的经历分享小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合 ...

最新文章

  1. RemoteFX原理简介
  2. P2P征信 大数据堪当重任?
  3. apache 与 php-fpm 几种处理方式
  4. SQL语言之数据定义语言(Oracle)
  5. 自定义View 中很关键的问题View获取宽/高是0 的解决办法
  6. 如何诊断crs 安装时 root.sh 脚本执行错误
  7. 产品配件类目税目分类_我国消费税税目种类有哪些?
  8. 【OpenCV 例程200篇】25. 图像的平移
  9. 虚拟机访问本地mysql_MySQL高可用之主从复制
  10. Jquery取得iframe中元素的几种方法(转载)
  11. 在c语言程序中可把整型数,C语言程序设计(2).doc
  12. MongoDB在windows下的安装步骤:
  13. “虚拟化 ”和“云计算”计算机技术新概念
  14. 阿里云服务器Java+Mysql+Tomcat环境搭建(Mac OS下配置)
  15. 计算机485通讯原理,串口通信原理详解.ppt
  16. Clock skew detected. Your build may be incomplete
  17. 给华为服务器RH2288V3(hm23-03)安装驱动
  18. android外接手机模拟器,HBuilderX 连接网易mumu手机模拟器进行App开发
  19. uni-app中如何引入uview-ui?
  20. python迭代法求极值_用Python实现最速下降法求极值的方法

热门文章

  1. 图像局部特征(九)--斑点检测LOG算子
  2. linux nvm node 权限不够_centos部署node+mongodb环境
  3. CentOS安装lynis安全漏洞扫描工具
  4. cemtos7重置mysql root,Centos7重置MySQL8.0 root密码
  5. Flume 知识点总结
  6. Zephyr_overlay文件讲解
  7. 基于markdown消息类型实现钉钉报警,让感官更舒服
  8. Mysql--Auto_increment详解
  9. 通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法
  10. linux ubuntu 安装 SSH