算法练习
BS有前途
Everything will be better
展开
-
经典中的经典算法:动态规划(详细解释,从入门到实践,逐步讲解)
首先,本博客为原创作品,欢迎指导,随意转载,如果可以请转载时说明出处,附上本文链接,谢谢动态规划的重要性就不多说,直接进入正题首先,我们看一下官方定义:定义:动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题...原创 2018-10-11 22:27:54 · 299147 阅读 · 257 评论 -
常见排序算法有哪些 时间复杂度
对于这个问题,老生常谈,但是也不容易记,找一篇比较好的分享给大家但是大家尽量做到能徒手写出来常见的排序算法 冒泡 快排 归并应该是最常考的本文中的代码为本人所写,不追求简洁,只追求易懂时空复杂度 各种常用排序算法 排序方法 时间复杂度 空间复杂度 稳定性 复杂性 ...原创 2019-03-12 20:12:15 · 2422 阅读 · 0 评论 -
关于求解全排列 剑指offer:字符串的排序
好久没有写博客了最近找实习,一直在做剑指offer,碰到几道难以理解的,不过最后结果都不错,都弄懂了现在做到这个字符串的排序,我是真的难以理解幸好牛客网提供了一个详细解释答案(非常详细)不过我看着描述有一点点问题,现在贴上来,大家一起来看一下主要采用了回溯法import java.util.ArrayList;import java.util.List;impo...原创 2019-03-08 14:32:10 · 122 阅读 · 0 评论 -
设计模式:单例模式
更多算法实现:软件工程基础算法实现,持续更新 设计模式的几种实现方式:懒汉式,饿汉式,懒汉式一次判空线程安全,懒汉式两次判空线程安全,静态内部类,枚举还有其他几种实现方式,掌握这么多足够/** * All rights Reserved, Designed By 吉大16沈通 * @Title: Singleton.java * @Package com.s...原创 2019-01-14 20:03:47 · 139 阅读 · 0 评论 -
纪念一下我写的leetcode题解 以后每天都会写的!!
定个小目标leetcode题解等完成上传之后阅读量大于1000leetcode914. X of a Kind in a Deck of Cardsclass Solution { public boolean hasGroupsSizeX(int[] deck) { //键值对,key(数字)--value(出现次数) Map<Integer...原创 2018-12-25 14:08:00 · 349 阅读 · 0 评论 -
彻底弄懂反转链表(递归和迭代)
真的是脑子不好使 每次弄懂下次再看就迷糊了如果有和我一样蠢得可以举一个简单地例子来逐步实现代码 理清什么套路,就像我迭代那样哈哈哈 递归:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * List...原创 2018-12-25 09:44:55 · 1445 阅读 · 2 评论 -
hanLP算法之一:TF-IDF算法记录
用来计算一个词在文章中的权重等…TF:词频,一个词在文章中出现的频率比如:"软件"在一篇文档中出现3次,这篇文档总共有100个单词,则词频(TF)为:3/100=0.03逆文档频率(IDF):该词在该文档集中多少篇文档出现,并取比例对数比如:"软件"一词在1000份文档中出现,该文档集中有10000000份文档,则**逆向文件频率(IDF)**为lg(10000000/1000)=4则该...原创 2018-11-08 10:52:04 · 1338 阅读 · 0 评论 -
leedcode经典题目:二叉树的直径
今天温习了过去解决的一些题目,发现关于二叉树的问题还是蛮有意思的,因为它们有着很多的共同点,而且多是通过递归思维解决,因此也有助于我们的逻辑能力的提升,下面给大家分享两道比较类似的二叉树问题~ 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例:给定二叉...转载 2018-10-08 18:25:04 · 272 阅读 · 0 评论 -
LeetCode经典题目:反转链表
两种方法:递归和遍历第一题:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL此题递归解法:/** * Definition for singly-linked list. * public class ListNode { * int val;...原创 2018-09-27 21:18:41 · 189 阅读 · 0 评论 -
leetcode经典题目:最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: “babad”输出: “bab”注意: "aba"也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”中心扩展算法:比较容易理解,就是对该字符串的每个中心进行遍历,对每个中心往外扩展,判断两边是否相等,每个中心结束后更新最大回文子串;我们观察到回文中心的两侧互为镜...原创 2018-10-11 22:49:02 · 282 阅读 · 0 评论 -
取物必胜策略
两个人取石头 每次最少1个,最多a个,共有n个考虑倍数问题int f = n % (a+1);我先拿f个,然后之后的每次你取x个,我就取(a+1)-x个,我必赢例如:100个球两个人每次最多取五个最少取一个,谁能拿到最后一个就赢,求第一个取的人的必胜方法.这种题目是考虑倍数的问题。每次最多取5个最少1个,这样的话就考虑每次取6,100÷6=16余4。先拿的人拿...原创 2019-04-20 20:51:16 · 3835 阅读 · 0 评论