摘要:
题目链接:数组中只出现一次的数字 题意:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 题解: 1、我最开始想到用map去统计一下。第一次出现这个数字后标记这个位置,再从当前位置向后找第二个出现1次的数字。 2、后面想到用set,好像也是差不多。。 3、 阅读全文
摘要:
题目链接:平衡二叉树 题意:输入一棵二叉树,判断该二叉树是否是平衡二叉树。 题解:平衡二叉树的定义:左右子树高度之差不大于1。递归判断深度即可。 代码: 1 class Solution { 2 public: 3 int depth(TreeNode* pRoot){ 4 if(pRoot == 阅读全文
摘要:
题目链接:二叉树的深度 题意:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 题解:这个题真是数据结构里写烂的一道题。。递归左右子树深度即可。 代码: 1 /* 2 struct TreeNode { 3 int val; 4 阅读全文
摘要:
题目链接:数字在排序数组中出现的次数 题意:统计一个数字在排序数组中出现的次数。 题解:暴力可过!但是。这题很明显不是让我们用暴力。既然是一个排序数组。自然想到二分。 举例: 1 2 2 2 3 二分第一次出现的位置,1;二分最后一次出现的位置:3;ans = last - first + 1 二分 阅读全文
摘要:
题目链接:两个链表的第一个公共结点 题意:输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 题解:先计算两个链表的长度。让长的先走‘长度差’个节点。然后一起向后走,就能遇到公共节点。 既然是单链表的第一个公共节点,在公 阅读全文
摘要:
题目链接:数组中的逆序对 题意:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 题解:因为这次的数据到了2*10^5。暴力肯定是不太行的。所以我 阅读全文