-
找第一个只出现一次的字符(Java实现及思路)
下面给大家带来的内容是在一个字符串中找出第一个只出现一次的字符的Java实现以及思路,一起来具体的了解一下。题目:在一个字符串(0<=字符串长度<=10000,全部由字母组成)当中,找出第一个只出现一次的字符,并返回它的位置, 假如没有就返回 -1(要区分大小写)。思路1:hash充分的利用每一个字母的ASCII码作hash来作为数组的index。先用一个58长度的数组来存储每个字母出现的次数。为什么是58?这主要是因为A-Z对应的ASCII码是65-90,a-z对应的ASCII
-
数组中的逆序对(java实现和思路)
下面的内容主要给大家分享的是数组中的逆序对的java实现以及思路,具体包含了3组实例,感兴趣的小伙伴可以来了解一下哦。题目:数组中的2个数字,假如,前面一个数字比后面的数字大,那么,这2个数字就组成一个逆序对。输入1个数字,求出该数组当中的逆序对的总数P。并且将P对1000000007取模的结果输出。 即输出P%1000000007。输入:例:输入:1,2,3,4,5,6,7,0输出:7思路1:(1)暴力求解法,时间复杂度为o(n^2),空间复杂度o(1)(2)使用归并排序的思想进行处理,时间复
-
找出两个链表的第一个公共结点,Java实现和思路
输入2个链表,找出这2个链表当中的第1个公共结点应该如何实现呢?下面给大家整理了Java实现实例和思路。题目:输入2个链表,找出2个链表中第1个公共结点注:因为传入数据是链表,所以,误测试数据的提示是用其他方式显示的,保证传入数据是正确的。思路1:首先,要找出两个链表的长度,之后再让长的先走2个链表的长度差,随后再一起走,因为两个链表用公共的尾部。代码实现:class Solution { public: &
-
数组统计数字出现次数代码实现和思路
你知道如何用代码去实现统计一个数字在排序数组中出现的次数吗?下面给大家带来了具体实例,一起来看看。题目:统计一个数字在排序数组中出现的次数。思路1:因为data中都是整数,所以我们可以稍微改变一下,不是搜索k的两个位置,而是去搜索k-0.5和k+0.5这两个数应该插入的位置,之后进行相减就可以啦。代码实现:class Solution { public: &nb
-
二叉树的深度怎么算?求二叉树深度的算法(思路和代码实现)
你知道求二叉树深度的算法应该如何实现吗?下面要给大家分享3种代码实现和思路,一起来了解一下。题目:输入一棵二叉树,求该二叉树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路1代码实现:class Solution { public: int TreeDepth(TreeNod
-
如何实现判断是否是平衡二叉树?实现和思路
你知道代码如何实现判断是否是平衡二叉树吗?下面要给大家分享就是具体的代码实现和思路。题目:输入一棵二叉树,判断这个二叉树是否是平衡二叉树。思路1代码实现:public class Solution { public int cheat(TreeNode root) { &n
-
找出数组中两个只出现一次的数字怎样实现?
代码如何实现找出数组当中只出现一次的数字呢?具体的代码实现和思路是怎样的?下面一起来看看实例。题目:一个整型数组当中,除去2个数字以外,其它的数字都已经出现过了2次。请写程序,将这2个只出现了一次数字找出来。思路1:可以使用位运算来实现。假如将所有数字相异或,那么最后的结果肯定是那两个只出现一次的数字异或的结果,所以,依据异或的结果1所在的最低位,将数字分成2半,每一半里都还有只出现1次的数据和成对出现的数据,这样继续对每一半相异或那么就能够分别求出2个只出现了1次的数字了。代码实现:class
-
找出所有和为S的连续正数序列代码如何实现?实现和思路
下面给大家分享的是和为S的连续正数序列的代码实现和思路,应该如何用代码来实现呢?下面一起来了解一下。题目:做了一道数学题,要求计算出9~16的和,我马上得出正确答案是100,可是,我并不满足与此,我在想,究竟还有多少这样的连续的正数序列的和为100(至少包括两个数)?之后,我得到了另外一组连续正数和为100的序列:18,19,20,21,22。问题交给你,你是都也可以迅速的找出所有和为S的连续正数序列呢?输出描述:输出所有和为S的连续正数序列。序列内依照从小到大的顺序,序列间依照开始数字从小至大
-
数组中查找和正好是S的两个数,代码实现和思路
下面要给大家带来的是和为S的两个数字的代码实现和思路,具体的包括了3种代码实现和思路整理,希望可以对大家有帮助。题目:输入一个递增排序的数组和一个数字S,在数组当中查找2个数,使得它们的和刚好是S,假如,有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。思路1:数列满足递增,设两个头尾两个指针i和j,1、假如ai+aj==sum,就是答案(相差越远乘积越小)2、假如ai+aj> sum,aj肯定不是答案之一(前面已经得出了i前面的数已经是不可
-
用字符串模拟ROL的运算结果代码如何实现?实现和思路
你知道用字符串模拟移位指令循环左移(ROL)的运算结果的代码实现和思路吗?下面就给大家带来几种具体的实例。题目:一个给定的字符序列S,请你将其循环左移K位后的序列输出。例:字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。思路1代码实现:class Solution { public: strin