上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
摘要: 题目链接:数组中只出现一次的数字 题意:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 题解: 1、我最开始想到用map去统计一下。第一次出现这个数字后标记这个位置,再从当前位置向后找第二个出现1次的数字。 2、后面想到用set,好像也是差不多。。 3、 阅读全文
posted @ 2020-03-04 23:02 甜酒果。 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目链接:平衡二叉树 题意:输入一棵二叉树,判断该二叉树是否是平衡二叉树。 题解:平衡二叉树的定义:左右子树高度之差不大于1。递归判断深度即可。 代码: 1 class Solution { 2 public: 3 int depth(TreeNode* pRoot){ 4 if(pRoot == 阅读全文
posted @ 2020-03-04 22:32 甜酒果。 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接:二叉树的深度 题意:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 题解:这个题真是数据结构里写烂的一道题。。递归左右子树深度即可。 代码: 1 /* 2 struct TreeNode { 3 int val; 4 阅读全文
posted @ 2020-03-04 22:24 甜酒果。 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 题目链接:数字在排序数组中出现的次数 题意:统计一个数字在排序数组中出现的次数。 题解:暴力可过!但是。这题很明显不是让我们用暴力。既然是一个排序数组。自然想到二分。 举例: 1 2 2 2 3 二分第一次出现的位置,1;二分最后一次出现的位置:3;ans = last - first + 1 二分 阅读全文
posted @ 2020-03-04 22:21 甜酒果。 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题目链接:两个链表的第一个公共结点 题意:输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 题解:先计算两个链表的长度。让长的先走‘长度差’个节点。然后一起向后走,就能遇到公共节点。 既然是单链表的第一个公共节点,在公 阅读全文
posted @ 2020-03-04 22:05 甜酒果。 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题目链接:数组中的逆序对 题意:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 题解:因为这次的数据到了2*10^5。暴力肯定是不太行的。所以我 阅读全文
posted @ 2020-03-04 21:50 甜酒果。 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题目链接:把数组排成最小的数 题意:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 题解:重载一下cmp函数。数字转成string。排序规律就是字符串组合起来,小的放前面 阅读全文
posted @ 2020-03-03 23:43 甜酒果。 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题目链接:整数中1出现的次数(从1到n整数中1出现的次数) 题意:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化 阅读全文
posted @ 2020-03-03 23:29 甜酒果。 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题目链接:最小的K个数 题意:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 题解:sort。输出。(我感觉我这个题应该是水过的,后面有时间补一下其他解法。 代码: 1 class Solution { 2 public: 阅读全文
posted @ 2020-03-03 22:48 甜酒果。 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目链接:字符串的排列 题意:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 题解:递归。每次把首位字符变一下。固定这个字符,做它的全排列。后面的字符也是一样,固定,再全排 阅读全文
posted @ 2020-03-03 22:42 甜酒果。 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目链接:二叉搜索树与双向链表 题意:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 题解:这题也是参考了别人的最优解回答。首先看一下题目这个要求。大概就是下面图这个意思。 一开始肯定会想到的是中序遍历。以中序遍历走完BST是可以得 阅读全文
posted @ 2020-03-03 22:35 甜酒果。 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题目链接:复杂链表的复制 题意:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。 题解:啊这个题我没看懂其实。我看了剑指的题解。大概就是要分三步 1、复制指针的label和next。将复制的节点跟在原节点后 阅读全文
posted @ 2020-03-03 22:02 甜酒果。 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目链接:二叉树中和为某一值的路径 题意:输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 题解:用一个一维数组记录路径。每次存储一下当前节点的值 阅读全文
posted @ 2020-03-03 21:25 甜酒果。 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接:二叉搜索树的后序遍历序列 题意:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 题解:二叉搜索树是,左子树上的节点都都小于根结点,右子树上的节点大于根结点,它的子树也满足这个规则。 后序遍历是左右根遍历。因此我们只需要判断,当前节点如果是在右子树上,那么必然不会再出现比他 阅读全文
posted @ 2020-03-03 20:52 甜酒果。 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目链接:从上往下打印二叉树 题意:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 题解:层序遍历啊。借助一个队列,从根结点开始,每次输出一个,就压入它的左右子节点。 代码: 1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *lef 阅读全文
posted @ 2020-03-03 20:41 甜酒果。 阅读(115) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页