博主头像
7024w的自留地

觉宇宙之无穷,识盈虚之有数

<算法很美> 部分习题

1.升序数组中寻找两数相加等于K我使用的是双指针的方法,时间复杂度为o(n)老师讲还可以通过二分法来查找(比如从第一个开始,K-arr[0],二分法寻找数组中是否存在符合条件的数)//升序数组,找到两数之和等于K public static int[][] findTwoNumbers(int[] arr,int k){ int length = arr.length; int[]

快排之单项扫描法

实际上就是利用递归、分治的思想将该数组不断进行划分排序。每一次划分,都保证pivot左边都是小于它的数,右边都是大于它的数。这样不断递归,确定每个位置上的pivot都符合要求,即可得到最终的结果。static int[] QuickSort(int[] arr, int p, int r){ if(p<r){ int q = partition(arr,p,r);

Leetcode 2.两数相加

最开始以为是向前进1位卡了很久,结果原来是我想错了.../**Definition for singly-linked list.public class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) { this.val = val; }ListNode(int val, ListNode next) { this.