题目链接:数组中的逆序对 题意:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 题解:因为这次的数据到了2*10^5。暴力肯定是不太行的。所以我 ...
分类:
编程语言 时间:
2020-03-04 22:53:45
阅读次数:
80
本篇博客旨在总结双指针法在剑指offer链表题中的应用 包括删除链表中重复的节点、链表中倒数第k个节点、链表中环的入口节点、反转链表、合并两个排序的链表、两个链表的第一个公共节点。 根据双指针的类型,可以大致分为三种: 第一种是间隔一定距离的双指针法,包括删除链表中重复的节点、链表中倒数第k个节点两 ...
分类:
其他好文 时间:
2020-03-04 22:43:21
阅读次数:
80
题目链接:两个链表的第一个公共结点 题意:输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 题解:先计算两个链表的长度。让长的先走‘长度差’个节点。然后一起向后走,就能遇到公共节点。 既然是单链表的第一个公共节点,在公 ...
分类:
其他好文 时间:
2020-03-04 22:36:51
阅读次数:
156
来源于剑指offer的大数打印问题: 给定n,如何打印从1到最大的n位整数? 如果n位整数不会溢出,例如n可以被long long表达,那可以简单的解决。如果n很大,无法用单个变量类型进行表达,那就要用其他数据类型来模拟大数的表达,最简单有效的方法是使用字符数组,并在字符数组上模拟整数的加法和进位。 ...
分类:
其他好文 时间:
2020-03-04 20:52:38
阅读次数:
53
剑指offer 38.二叉树的深度 题目 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路 偷个懒,直接用递归,如果结点为空就不增长深度,不为空就返回子树的深度加一。 代码 ...
分类:
其他好文 时间:
2020-03-04 20:47:32
阅读次数:
57
剑指offer 37.数字在排序数组中出现的次数 题目 统计一个数字在排序数组中出现的次数。 思路 虽然递归已经是O(n)了,但是还要缩小,所以二分查找,找到前后的位置就行了。查找设k 0.5和k+0.5,反正都没有,所以能找到应该在的位置,然后减法就行。 代码 ...
分类:
编程语言 时间:
2020-03-04 20:46:25
阅读次数:
67
连续子数组的最大和 思路: 当前和为cuurrentsum,当前要加的数为num。若cuurrentsum是一个负数,那么不论num是正数还是负数。num+current总小于num。所以要舍弃currentsum。从num开始往后计算。 代码: 从1到n中1出现的次数 思路: 1.每个数进行判断。 ...
分类:
编程语言 时间:
2020-03-04 19:32:26
阅读次数:
64
链接:https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof/ 代码: class Solution { public: int countDigitOne(int n) { vector<int> nu ...
分类:
其他好文 时间:
2020-03-04 14:25:11
阅读次数:
58
剑指offer 33.丑数 题目 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路 这里采用的是三指针法,任意丑数都是比这个数小的丑数乘以2,3,5其中之一得到 ...
分类:
其他好文 时间:
2020-03-04 14:19:26
阅读次数:
43
链接:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/submissions/ 代码: class Solution { public: int maxSubArray(vector<int>& nums) { ...
分类:
编程语言 时间:
2020-03-04 14:19:07
阅读次数:
60