Giter Club home page Giter Club logo

god-jiang.github.io's People

Contributors

god-jiang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

god-jiang.github.io's Issues

链表反转解法 | god-jiang的git个人博客

https://god-jiang.github.io/2019/04/20/%E9%93%BE%E8%A1%A8%E5%8F%8D%E8%BD%AC%E8%A7%A3%E6%B3%95/#more

背景 当初大二学习数据结构的时候,有许多数据结构我都学得有点懵,总感觉没有一个系统的概括和总结,导致我的链表学得一般。后来班上有个同学微信跟我说叫我关注”程序员小灰”这个公众号,说他讲得很生动形象,最后关注了一波,看了他里面一道经典的面试题——链表反转。接下来就来讲解链表反转的解法。

三大高效排序之快速排序(Java实现) | god-jiang的git个人博客

https://god-jiang.github.io/2019/12/16/%E4%B8%89%E5%A4%A7%E9%AB%98%E6%95%88%E6%8E%92%E5%BA%8F%E4%B9%8B%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F-Java%E5%AE%9E%E7%8E%B0/

概念快速排序是一种原地排序,只需要一个很小的栈作为辅助空间,空间复杂度为O(logN),所以适合在数据集比较大且无序的时候使用。 时间复杂度 时间复杂度比较复杂,最好的情况是O(N),最差的时候是O(N^2),所以平时说的O(N*logN)为其平均时间复杂度。

hexo博客搭建gitalk | god-jiang的git个人博客

https://god-jiang.github.io/2019/12/31/hexo%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BAgittalk/#more

背景 2019年1月份的时候就开始搭建了我的第一个博客hexo,部署到了Github Page上,也陆陆续续更新了一些大学时期学习的数据结构和算法内容,然后加了阅读量和访问量,后面发现没有评论系统的博客有点low的感觉,看了很多的评论系统,这里就不一一列举了,最后使用的是Gittalk评论系统。接下来就来介绍hexo集成Gittalk评论系统的全部过程。

单调栈及其应用 | god-jiang的git个人博客

https://god-jiang.github.io/2020/01/08/%E5%8D%95%E8%B0%83%E6%A0%88%E5%8F%8A%E5%85%B6%E5%BA%94%E7%94%A8/

单调栈 博主是因为在刷LeetCode题的时候才知道有单调栈这个数据结构,说起来也是真的巧妙。一开始是在LeetCode739题(每日温度)接触到的,其实单调栈就是从数组中找到左右两边比你大的数或者比你小的数而且时间复杂度为O(N)。以下讲一些单调栈的特性和一些应用题

神级遍历-morris | god-jiang的git个人博客

https://god-jiang.github.io/2019/12/15/%E7%A5%9E%E7%BA%A7%E9%81%8D%E5%8E%86-morris/

morris遍历介绍morris遍历是二叉树遍历算法的超强进阶算法,跟递归、非递归(栈实现)的空间复杂度,morris遍历可以将非递归遍历中的空间复杂度降为O(1)。从而实现时间复杂度为O(N),而空间复杂度为O(1)的精妙算法。 morris遍历利用的是树的叶节点左右孩子为空(树的大量空闲指针),实现空间开销的极限缩减。

三大高效排序之归并排序(Java实现) | god-jiang的git个人博客

https://god-jiang.github.io/2019/12/16/%E4%B8%89%E5%A4%A7%E9%AB%98%E6%95%88%E6%8E%92%E5%BA%8F%E4%B9%8B%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F-Java%E5%AE%9E%E7%8E%B0/

归并排序的介绍归并排序(英语:Merge sort,或Mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(n log n)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。

浅谈单例模式的几种实现 | god-jiang的git个人博客

https://god-jiang.github.io/2020/02/08/%E6%B5%85%E8%B0%88%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%87%A0%E7%A7%8D%E5%AE%9E%E7%8E%B0/#more

单例模式(来自菜鸟教程) 单例模式(Singleton Pattern)是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

动态规划的高度套路 | god-jiang的git个人博客

https://god-jiang.github.io/2020/02/18/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%9A%84%E9%AB%98%E5%BA%A6%E5%A5%97%E8%B7%AF/

动态规划(百度百科) 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化

浅谈hash函数及应用 | god-jiang的git个人博客

https://god-jiang.github.io/2020/01/04/%E6%B5%85%E8%B0%88hash%E5%87%BD%E6%95%B0%E5%8F%8A%E5%BA%94%E7%94%A8/#more

一、Hash(散列函数) Hash一般被翻译成散列、杂凑或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列出相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。(介绍来源于百度百科

python爬虫入门笔记 | god-jiang的git个人博客

https://god-jiang.github.io/2020/01/22/python%E7%88%AC%E8%99%AB%E5%85%A5%E9%97%A8%E7%AC%94%E8%AE%B0/#more

背景 由于这两天在家大扫除贴对联准备过年,所以刷题的机会少了许多,我也就放松放松一下,不写题解了,哈哈。由于python语言越来越火热,虽然我是走Java后台开发,但是也被python给吸引住了。所以这几天我学习了一下python的爬虫入门,记录一下我学习python爬虫的经历吧。

寻找两个有序数组的中位数 | god-jiang的git个人博客

https://god-jiang.github.io/2020/02/01/%E5%AF%BB%E6%89%BE%E4%B8%A4%E4%B8%AA%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95%B0/

前言 最近在家闲着无聊看爱情公寓5,看上瘾了发现两天没刷题了,不好,所以去leetcode看了一下,找到一道比较有意思的题目(寻找两个有序数组的中位数),尝试做了一下,暴力解法还是挺简单的,二分法也比较有意思。所以来试着讲解一下(哈哈哈)

数组中的逆序对(困难) | god-jiang的git个人博客

https://god-jiang.github.io/2020/02/16/%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E9%80%86%E5%BA%8F%E5%AF%B9%EF%BC%88%E5%9B%B0%E9%9A%BE%EF%BC%89/

前言 最近一直在家刷面经,因为疫情也出不去。所以没事就会在知乎回答别人提出的问题,还有就是刷题。最近leetcode授权了剑指offer的题,然后就当作我是复习吧。目前还在刷,今晚吃饱刷到这道归并排序的进阶题目——数组中的逆序对,所以写一篇关于它的题解吧。

(经典)求两个单链表相交结点 | god-jiang的git个人博客

https://god-jiang.github.io/2020/02/12/%EF%BC%88%E7%BB%8F%E5%85%B8%EF%BC%89%E6%B1%82%E4%B8%A4%E4%B8%AA%E5%8D%95%E9%93%BE%E8%A1%A8%E7%9B%B8%E4%BA%A4%E7%BB%93%E7%82%B9/

题目描述 在本题中,单链表可能有环,也可能无环。给定两个单链表的头节点head1和head2,这两个链表可能相交,也可能不相交。请实现一个函数,如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null即可。 要求:如果链表1的长度为N,链表2的长度为M,时间复杂度请达到O(N+M),额外空间复杂度请达到O(1)。

滑动窗口算法 | god-jiang的git个人博客

https://god-jiang.github.io/2020/01/01/%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E7%AE%97%E6%B3%95/

滑动窗口操作 使用左右指针L、R 当一个数进入窗口时,必须从尾部进入,R向右移动一位 当一个数出窗口时,必须从头部出去,L向右移动一位 L、R只能向右移动,且R>L 算法原题(滑动窗口的最大值)Problem 有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。例如,数组为[4, 3, 5, 4, 3, 3, 6, 7],窗口大小为3时:[4 3

数据流中的中位数解法 | god-jiang的git个人博客

https://god-jiang.github.io/2020/01/03/%E6%95%B0%E6%8D%AE%E6%B5%81%E4%B8%AD%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95%B0%E8%A7%A3%E6%B3%95/#more

背景介绍 越来越多的程序员关注数据结构和算法的知识,会在leetcode和牛客等各种网站刷题,但是遇到一些中等难度或者困难难度的题就束手无策,而我通过刷题来写一些关于中等或者困难的题目的题解,达到一个自己越来越熟悉,而且还可以帮助别人理解。接下来我会用两种策略来解决这道题——数据流中的中位数。 数据流中的中位数解法Problem 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中

和为S的连续正数序列 | god-jiang的git个人博客

https://god-jiang.github.io/2020/02/04/%E5%92%8C%E4%B8%BAS%E7%9A%84%E8%BF%9E%E7%BB%AD%E6%AD%A3%E6%95%B0%E5%BA%8F%E5%88%97/

题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找到所有和为S的连续正数序列?Good Luck!

2019.3.1IntelliJ IDEA永久破解 | god-jiang的git个人博客

https://god-jiang.github.io/2020/01/25/2019-3-1IntelliJ-IDEA%E6%B0%B8%E4%B9%85%E7%A0%B4%E8%A7%A3/

背景 大二刚接触到Java这门课程的时候,都是在eclipse上使用。当时老师讲了IDE的作用什么的,然而当时的我根本就没有听,导致我大三花更多的时间自己自学Java和JavaWeb还有框架等等。然后就是大三自学的时候用的是Myeclipse破解版的,发现这个编译器真的卡,也可能是因为我的笔记本性能一般,所以一直在用eclipse。最后是在大三的期末实训接触到的IDEA编译器,对于我来说打开了另一

计数排序 | god-jiang的git个人博客

https://god-jiang.github.io/2020/03/06/%E8%AE%A1%E6%95%B0%E6%8E%92%E5%BA%8F/

计数排序(百度百科) 计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。 [1] 当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下

过年之抢红包算法 | god-jiang的git个人博客

https://god-jiang.github.io/2020/01/26/%E8%BF%87%E5%B9%B4%E4%B9%8B%E6%8A%A2%E7%BA%A2%E5%8C%85%E7%AE%97%E6%B3%95/

前言 昨天是大年初一,怎么说呢,因为在读大学, 没有出来工作,所以昨晚也是陆陆续续有收到一些红包。然后想起自己对算法感兴趣,以前也看过一些公众号有讲过抢红包算法,今天就更新一遍关于抢红包的算法,对学过数据结构或者对抢红包感兴趣的可以看一看。本文就讲两个抢红包算法。、

感谢

堆排序一直不会,你这个版本就看起来很简单,继续加油

最长有效括号 | god-jiang的git个人博客

https://god-jiang.github.io/2020/01/30/%E6%9C%80%E9%95%BF%E6%9C%89%E6%95%88%E6%8B%AC%E5%8F%B7/#more

前言 最近被新型冠状病毒搞得人心惶惶,大家都不太敢出门,我也不敢出门(哈哈哈),索性就在家里刷了一道leetcode的简单题——有效的括号(leetcode20题),说简单也不简单,说难也不难,刷完之后觉得意犹未尽。然后再刷了一道leetcode的困难题——最长有效括号(leetcode32题)。今天就来讲一下这两道相似题目的题解。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.