菜鸟笔记
提升您的技术认知

算法笔记 第3页

反转链表的4种方法c++实现

菜鸟阅读 : 495赞(5)

1 迭代反转 3个指针,beg,mid,end;如图所示: 3 个指针每次各向后移动一个节点,直至 mid 指向链表中最后一个节点(此时 end 为 NULL )。需要注意的是,这 3 个指针每移动之前,都需要做一步操作,即改变 mid 所...

[C++]链表部分翻转

菜鸟阅读 : 290赞(5)

// PartReverse.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <cstdlib> #include <iostream> using std:...

算法链表-局部反转

菜鸟阅读 : 273赞(5)

题目:描述 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n)O(n),空间复杂度 O(1)O(1)。 例如: 给出的链表为 1\to 2 \to 3 \to 4 \to 5 \to NULL1→2...

三种洗牌算法shuffle

菜鸟阅读 : 504赞(5)

1. 背景        笔试时,遇到一个算法题:差不多是 在n个不同的数中随机取出不重复的m个数。洗牌算法是将原来的数组进行打散,使原数组的某个数在打散后的数组中的每个位置上等概率的出现,刚好可以解...

动态规划(DP算法)详解

菜鸟阅读 : 1145赞(5)

什么是动态规划:动态规划_百度百科 内容太多了不作介绍,重点部分是无后效性,重叠子问题,最优子结构。 问S->P1和S->P2有多少种路径数,毫无疑问可以先从S开始深搜两次,S->P1和S->P2找出所有路径数,但是...

什么是算法?

菜鸟阅读 : 1414赞(5)

文章目录 前言 主要内容 总结 更多宝藏 前言 在数字化时代,计算机已经成为人类生活中不可或缺的一部分。计算机能够帮助我们处理海量的数据,实现各种复杂的功能和任务,其中最关键的就是算法。 算法是计算机科学中的基础学科,涉及众多的算法类型和应...

递归与递推算法七题

菜鸟阅读 : 341赞(5)

1.递归实现指数型枚举 从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。 输入格式 输入一个整数 n。 输出格式 每行输出一种方案。 数据范围 1≤n≤15 n=int(input()) status=[0]*n de...

算法详解-动态规划-如何用智慧打败暴力

菜鸟阅读 : 1961赞(3)

什么是动态规划? 动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划算法是一种高效的求解最优化问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题,可以通过记忆化存储子问题的解,避免重复计算,...

算法详解-递归-解决复杂问题的神器

菜鸟阅读 : 626赞(3)

前言 递归是一种非常重要的编程技巧,它可以让我们用简洁的代码解决复杂的问题。 主要内容 主要内容: 递归是一种算法,它通过调用自身来解决问题。一个递归函数通常包括两个部分:基本情况(base case)和递归情况(recursive cas...

十道经典面试算法真题详解

菜鸟阅读 : 521赞(3)

重排链表 最长递增子序列 环形链表 反转链表 最长回文子串 全排列 LRU 缓存 合并K个升序链表 无重复字符的最长子串 删除链表的倒数第 N 个结点 1. 重排链表 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 →...