![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计
文章平均质量分 77
慢慢来
「 361° 」
这风儿还在刮,乱了谁的年华
展开
-
线段树(Java)
1.懒数组2.懒更新。原创 2024-04-18 00:57:39 · 133 阅读 · 1 评论 -
Manacher算法、滑动窗口、单调栈(Java)
马拉车算法、滑动窗口、单调栈原创 2023-03-09 08:58:32 · 110 阅读 · 1 评论 -
动态规划(Java)
动态规划的目的就是避免重复计算,在暴力递归的过程中若在计算过程中产生了重复计算那么就可以进行动态规划的优化。以空间换时间,可以根据暴力递归的过程写出动态规划的过程。步骤: 题 -> 找到暴力递归算法 -> 有重复解 -> 找打可变参数 -> 记忆化搜索 -> 精细化组织变为经典的动态规划算法什么暴力递归可以继续优化?有重复调用同一个子问题的解,这种递归可以优化,如果每一个子问题都是不同的解,无法优化也不用优化面试中设计暴力递归过程的原则每一个可变参数的类型、一定不要比int类型更加复杂。原创 2022-11-11 18:06:15 · 2838 阅读 · 1 评论 -
打表技巧和矩阵处理技巧(Java)
文章目录前言一、打表法1. 小虎买苹果2. 牛羊轮流吃草3.连续整数和二、矩阵处理技巧1.zigzag打印矩阵2.转圈打印矩阵3.原地旋转正方形矩阵总结前言例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。一、打表法问题如果返回值不多,可以用hardcode的方式列出,作为程序的一部分一个问题解决时底层频繁使用规模不大的小问题的解,如果小问题的返回值满足条件1),可以把小问题列出一张表,作为程序的一部分打表找规律打原创 2022-11-11 18:04:27 · 198 阅读 · 0 评论 -
二叉树的基本算法与递归套路(Java)
二叉树的一些算法原创 2022-06-29 16:45:23 · 335 阅读 · 0 评论 -
链表问题(Java)
本文主要讲解了几道与链表有关的基础提醒,帮助读者更好的运用链表,对这种数据结构有更好的掌握。二、判断链表回文三、将单链表按照某值划分成左边小中间相等右边大的形式放入数组进行partition,之后重新串联六个指针,但要考虑某个区域可能没有值四、复制random单链表利用HashMap对节点进行存储,key为老节点,value为克隆的新节点。分为两遍遍历,第一遍进行节点的复制,第二遍进行next与random节点的连接。时间复杂度 O(n) 空间复杂度(n)在原节点后面加上克原创 2022-06-10 17:49:16 · 99 阅读 · 2 评论 -
排序算法总结及代码实现(Java)
本文主要介绍几种排序算法的java实现极其时间复杂度、空间负责度以及其稳定性。 同时对其应用做简要介绍。原创 2022-06-07 15:46:46 · 126 阅读 · 0 评论 -
斐波那契数列的多种解法(含矩阵快速幂)
斐波那契数列的多种解法斐波那契函数的定义:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)解法一利用递归的方法做首先要确定递归的终止条件:F(0)=1,F(1)=1。只后再利用公式F(n)=F(n-1)+F...原创 2020-03-11 23:09:28 · 1768 阅读 · 0 评论