- 博客(4)
- 收藏
- 关注
原创 算法-移动零-双指针算法(简单)
如上表,在遍历数组的时候我们设置两个指针a和b,起始两个指针都在数组下标为0的位置,移动和交换逻辑是,a指针每次移动一个位置,如果移动后的位置是0,则继续移动,同时b指针不动;继续第四次移动,a指针后移一位,到达数组下标4的位置,此时元素非0,需交换a和b下标对应的数据,同时b指针后移一位。继续第三次移动,a指针继续后移,到达数组下标3的位置,此时元素非0,则需要交换a、b指针对应元素的位置,同时b指针后移1位。继续第二次移动,a指针继续后移,到达数组下标2的位置,此时元素等于0,不做操作。
2023-11-17 16:49:53 79 1
原创 算法-最长连续序列(中等)
实例2中,我们取出了0先找最长序列,又取出了3做最长序列,那么很明显在操作3的时候是无效的,因为0的最长序列已经包含了3的最长序列,此时考虑,是不是期望每次取出一个元素,都先找这个元素在数组里面连续的最小值,也就是当我们取到3的时候,其实可以丢弃3的查询过程。这样第一个元素的查询序列结束,我们接着查询第二个元素3的连续序列,3的最长连续序列是3-8,就是6,后续把所有的数据都比较出来,最长的连续序列是0-8,输出9。好的,开始淦起来,新建一个类,输入是数组,输出是一个int值,用来返回最长序列的长度。
2023-11-16 17:04:17 90 1
原创 算法-字母异位词分组(中等)
如何去判断两个字符串是不是异位词呢,分析实例中的字符串,在输出里面,nat和tan是异位词,他们都有一样的字母组成,n,a,t三个字母,那如果将nat和tan都看成字符串数组,并且统一按照自然排序的话,nat和tan都会被排序成a,n,t,这样就可以判断他们相同了,所以可以使用排序的方式,去存储每个字符串按照自然排序后的结果。那么用什么来存这个排序后的内容呢,想了一下,排序后的内容,需要用来查询,因为属于异位词的字符串需要放到同一个数组里面。由此分析完成,可以开始写代码了。2、将同一类异位词存储起来。
2023-11-15 15:53:11 68 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人