![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
白夜的Alice
这个作者很懒,什么都没留下…
展开
-
剑指Offer 2
文章目录第三题第四题第五题第六题第三题/* 题目倒是非常的简单,不过对于不同的有要求大致有不同的做法 1. 时间O(1) 空间O(n) 可以使用map或者set,判断map中是否已经存在 */ public int findRepeatNumber(int[] nums) { Set<Integer> dic = new HashSet<>(); for(int num : nums) {原创 2022-03-15 13:37:42 · 74 阅读 · 0 评论 -
排序算法-java实现
一、快速排序思想:基于分治的思想,是冒泡排序的改进型。首先在数组中选择一个基准点并把基准点放于序列的开头(该基准点的选取可能影响快速排序的效率,关于基准点的选择方法后面再讲解),然后分别从数组的两端扫描数组,设两个指示标志(lo指向起始位置,hi指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换lo和hi位置的值,然后从前半部分开始扫秒,发现有元素大于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置,一次排序就完成了。之后再采原创 2022-02-11 23:08:36 · 357 阅读 · 0 评论 -
数组寻两最大(递归,分治)
代码原始版本(写的有点繁琐)//分而治之 2n-3#include<stdio.h>void MAX(int A[],int lo,int hi,int *x1,int *x2){ int max1,max2,f; for(int i=lo;i<hi;i++) if(A[i]<A[i+1]) {*x1=A[i+1]...原创 2019-12-06 16:48:27 · 323 阅读 · 0 评论 -
数据结构与算法(小甲鱼)马踏棋盘
方法:1.回溯法:碰壁回头2.哈密尔顿路径:通过图G的每个结点一次,且仅一次的通路(回路),就是哈密顿通路(回路).含有图中所有顶点的路径称作哈密顿路径。示意图:代码:#include<stdio.h>#include<time.h>#define X 8#define Y 8int chess[X][Y];int nextxy(int *x,int...原创 2019-12-05 21:54:27 · 438 阅读 · 2 评论