前言: 冒泡,选择:使用了普通双指针法 插入,快速,归并:使用了二分法,递归 冒泡排序 原理:不断比较相邻两个数得大小,把较大的数交换到靠后的位置 def bubbleSort(iList): '''冒泡排序 ''' if len(iList) <= 1: return iList for i in ...
分类:
编程语言 时间:
2021-07-16 17:32:50
阅读次数:
0
方法一:双指针法 采用就地反转,不用额外开辟空间 注意:接收链表的head节点,返回当前节点 方法二:递归法 代码如下: class Node(object): def __init__(self, item, next=None): self.item = item self.next = nex ...
分类:
其他好文 时间:
2021-04-21 12:23:41
阅读次数:
0
调整数组顺序使奇数位于偶数前面 /// <summary> /// 首尾双指针法 /// </summary> /// <param name="nums"></param> /// <returns></returns> public int[] HeadTailExchange(int[] nu ...
分类:
其他好文 时间:
2021-03-11 12:06:51
阅读次数:
0
编号206:反转链表 题意:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 这里我们只需要改变节点Next域的指向即可,实现原地反转。这里我们需要借助一个辅助指针pre初始化指向nil最后最为新的头节点,一个cur指针指 ...
分类:
其他好文 时间:
2021-02-09 12:19:16
阅读次数:
0
本题 题目链接 题目描述 我的题解 双指针 思路分析 因为该数组是递增数组,所以我们可以用双指针法。 声明指针left 和 right分别指向数组的头(数组下标为0)和尾(数组下标为length-1) 循环搜索:当两指针相遇时,结束循环 计算nums[left]和nums[right]的和 s 若s ...
分类:
其他好文 时间:
2020-07-28 14:05:28
阅读次数:
70
题目要求 算法分析 可以用双指针法, 分别指向头尾元素,如果两元素的和大于目标,尾指针前移,如果小于目标,头指针后移,等于目标即可得答案 代码展示(C#) public class Solution { public int[] TwoSum(int[] numbers, int target) { ...
分类:
编程语言 时间:
2020-07-20 10:40:01
阅读次数:
55
双指针法(尺取法),向前遍历一次对称轴,再向后遍历一次对称轴,就可通过已知的字符串得到其他所有不相交的字符串对,其中向后遍历等价于向前遍历反转的字符串。 ...
分类:
其他好文 时间:
2020-07-03 23:35:32
阅读次数:
46
1. 二分法 二分查找也属于顺序表查找范围,二分查找也叫做折半查找,二分查找的时间效率为(logN) 二分查找的基本思想是:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功,如果给定值小于中间值,则查找数组的前半段,否则查找数组的后半段。 二分查找只适用于有序数组或者链 ...
分类:
编程语言 时间:
2020-06-29 23:01:59
阅读次数:
100
1. 两数之和 本题可以有两种方法,一种先排序,再用双指针法找到两数。另一种利用哈希表存储值对应的下标,如果在表中找到target-nums[i]对应的值,则直接输出 Java class Solution { public int[] twoSum(int[] nums, int target) ...
分类:
其他好文 时间:
2020-06-17 01:48:53
阅读次数:
65
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组 ...
分类:
其他好文 时间:
2020-06-13 00:28:21
阅读次数:
46