![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
不知其所以然
这个作者很懒,什么都没留下…
展开
-
算法-题解总结
剪绳子最大 把绳子大小分为3,以及总长度余3的大小(具体看题意)滑动窗口什么是滑动窗口?其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列!如何移动?我们只要把队列的左边的元素移出就行了,直到满足题目要求!一直维持这样的队列,找出队列出现最长的长度时候,求出解!时间复杂度:O(n)...原创 2020-11-11 16:27:15 · 164 阅读 · 0 评论 -
笔试-给出一个字符串输出所有的排序可能(java)
1. 目的最近笔试经常遇到这样的题目,或者类似的这样的题目,但是经常不知怎么做(有毒),所以特意来此记录一下做法。2. 代码(别人的代码)import java.util.Scanner;public class Main { //以chars数组的n号位置作为交换点,向后交换 public static void paiLie(int n,char[] chars){ //递归出口:只剩一个字符,即无法交换 if (n==chars.length-原创 2020-10-15 22:04:48 · 513 阅读 · 0 评论 -
加起来和为目标的组合(java)
1. 题目描述2. 解题思路(1)在递归的 for 循环里加上 if (i > start && candidates[i] == candidates[i - 1]) continue; 这样可以防止 res 中出现重复项,然后就在递归调用 dfs 里面的参数换成 i+1,这样就不会重复使用数组中的数字(回溯思维)3. 代码实现(1)import java.util.*;public class Solution { public ArrayList<A原创 2020-10-02 09:44:46 · 279 阅读 · 0 评论 -
java实现深度优先遍历算法dfs
1. 场景2. 实现主要原理1.使用递归方式求解:先判断当前点是否为终点,非终点时递归调用DFS2 . 调用DFS前当前点标记为已访问,DFS执行结束后当前点标记为未访问:前者防止递归调用时重复访问当前点走回头路,后者是为探索其他路径时能重复访问该点。3.使用外部变量统计最小步数3. 代码实现import java.util.Scanner;public class Test4 { private int m,n,p,q; private int min=99999999;原创 2020-06-08 23:38:42 · 646 阅读 · 0 评论 -
快速排序代码实现
1. 说明本文主要用代码实现这种排序,不做原理等介绍。2. 例子简单思路:就是随便找一个值作为排序的基准值(一般找第一个),然后从最后面的元素和基准值进行比较找到一个比基准值小的,然后与基准值交换。同理从最开始找到一个比基准值大的,再和基准值交换,直到遍历完。然后分为两部分,两部分重复上述所说的过程即可。扩展:因为基准值的下标一直在变化,所以这种算法也被称为说明**本文主要用代码实现这种排序,不做原理等介绍。 2. 例子**简单思路:**就是随便找一个值作为排序的基准值(一般找第一个),然原创 2020-06-07 12:06:44 · 265 阅读 · 0 评论