Songjiu's Blog

What doesn't kill you makes you stronger

格雷编码

leetcode 89

一道很有意思的题目 来自https://leetcode-cn.com/problems/gray-code/ 题目描述 解体思想 百度一下格雷码的生成规则,其实就是:把一个数字转换为二进制数后,从右往左每一位都和前一位做异或,最后保留第一位。 代码 def grayCode(self, n: int) -> List[int]: return [i ...

求矩形面积问题

力扣84、85

题目描述: 来自:https://leetcode-cn.com/problems/largest-rectangle-in-histogram/ 力扣84 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 #题目分析: 暴力遍历法 首先想到的是暴力遍历法,就是遍历该数组的元素,后用left与rig...

Ubuntu本地提权漏洞

CVE-2017-16995

前言 搬运自i春秋 https://www.ichunqiu.com/experiment/detail?id=61491&source=1 该漏洞存在于调用eBPF bpf(2)的Linux内核系统中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题, 低权限用户可使用此漏洞获得管理权限。Ubuntu 16.04.1~16.04.4 均存在此漏洞....

FFmpeg文件读取漏洞

CVE-2017-9993

介绍 来自i春秋 网址:https://www.ichunqiu.com/course/59111?f=1 FFmpeg是一个完整的跨平台解决方案,用于记录、转换流式传输音频和视频,可用于预览生成和视频转换的视频编码软件。目前有非常多的视音频软件或是视频网站、手机APP都采用了这个库,但是这个库历史上曝出的漏洞也非常之多。 此次漏洞利用了FFmpeg可以处理HLS播放列表的特性,而播放列表...

动态规划问题

力扣44、72 、70

动态规划问题 核心思想:自底向上,相比递归来说可以利用一些过程中的结果,减少一些重复计算。具体实现则是构建dp表,如以下来自网络的小例子: A * "1+1+1+1+1+1+1+1 =?" * A : "上面等式的值是多少" B : *计算* "8!" A *在上面等式的左边写上 "1+" * A : "此时等式的值为多少" B : *quickly* "9!" A : "你怎么这么快就...

Django debug page XSS漏洞

CVE-2017-12794

在i春秋平台上看到的漏洞教学,加以总结。 Django Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django,它是一个开放源代码的Web应用框架。 漏洞分析 i春秋上给的解释有,在1.11.4版本上,没有对exc_cause进行force escape(详情参见django的转义总结),而1.11.5...

螺旋矩阵问题

力扣54、59

很多校招的基础算法题,手撕代码等,还是有必要了解一下的。 问题阐述 问题思考 切割法,类似剥洋葱的感觉,定义四个变量up、down、right、left分别控制切割位置如下图所示: 代码: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: #画图分割 ...

全排列相关问题算法

力扣46、47、60

前言 计算permutation问题的整理归纳。 递归求全排列 一般全排列解法使用递归方式,核心思想就是将当前一个数字拿出放入排列池,将剩余数字放进下一次函数递归,递归到排列池长度等于目标长度,返回并将当前排列池作为一个结果。 def dfs(self,list1,res): if len(list1)==0: return self.result...

Hello 2019

"Hello World, Hello Blog"

“🙉🙉🙉 ” 前言 折腾一上午总算把博客搭起来了,买了个新域名,彳亍口巴。从今天开始记录一些有用的东西。