triangle

使用border绘制各种三角形

自作多情 提交于 2020-03-04 19:54:40
1.元素的边框展示 <h5>元素的边框展示</h5> <div class="all-triangle"></div> .all-triangle { width: 0; border: 50px solid; border-color: red blue green goldenrod; } 2.朝下的三角形 <h5>朝下的三角形</h5> <div class="down-triangle"></div> .down-triangle { width: 0; border: 10px solid; border-color: red transparent transparent transparent; } 3.朝上的三角形 <h5>朝上的三角形</h5> <div class="up-triangle"></div> .up-triangle { width: 0; border: 10px solid; border-color: transparent transparent red transparent; } 4.朝左的三角形 <h5>朝左的三角形</h5> <div class="left-triangle"></div> .left-triangle { width: 0; border: 10px solid; border-color:

leetcode118 Pascal's Triangle

蹲街弑〆低调 提交于 2020-02-28 02:08:19
1 """ 2 Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. 3 In Pascal's triangle, each number is the sum of the two numbers directly above it. 4 Example: 5 Input: 5 6 Output: 7 [ 8 [1], 9 [1,1], 10 [1,2,1], 11 [1,3,3,1], 12 [1,4,6,4,1] 13 ] 14 """ 15 """ 16 解法一: 17 先来一个自己写的AC 18 直来直去,将第一行第二行单独拿出来讨论 19 第三行以后按照规律循环 20 """ 21 class Solution1: 22 def generate(self, numRows): 23 if numRows <= 0: 24 return [] 25 if numRows == 1: 26 return [[1]] 27 res = [[1], [1, 1]] 28 if numRows == 2: 29 return res 30 queue = [1, 1] 31 while numRows - 2: 32 temp = [1] 33 for i

《 Java 编程思想》CH08 多态

痴心易碎 提交于 2020-02-27 15:22:11
在面向对象的程序设计语言中,多态是继数据抽象和继承之后的第三种基本特征。 多态通过分离做什么和怎么做,从另一个角度将接口和实现分离开来。 “封装”通过合并特征和行为来创建新的数据类型。“实现隐藏”则通过将细节“私有化”把接口和实现分离开来,而多态的作用则是消除类型之间的耦合关系。 再论向上转型 & 转机 对象既可以作为它自己本身的类型使用,也可以作为它的基类使用,而这种把某个对象的引用视为其基类的引用的做法被称为“向上转型” 将一个方法调用同一个方法主体关联起来被称为 绑定 。 若在程序执行前进行绑定(如果有的话,由编译器和链接器实现),叫做 前期绑定 。 若在运行时根据对象的类型进行绑定,则叫做 后期绑定 ,也叫做 动态绑定 或 运行时绑定 。 Java 中除了 static 方法和 final 方法(private 方法属于 final 方法)外,其他所有方法都是后期绑定的。 Java 用动态绑定实现了多态后,我们可以只编写与基类相关的代码,而这些代码可以对所有该基类的导出类正确运行。 多态的例子可以参考练习2。 在一个设计良好的 OOP 程序中,大多数或所有方法都只与基类接口通信。这样的程序是可扩展的,因为可以从通用的基类继承出新的数据类型,从而新添加一些功能。 域没有多态。 如果一个方法是静态的,那么它的行为就不具有多态性。静态方法是与类,而不是与单个对象相关联的。 由于

CSS伪类:CSS3鼠标滑过按钮动画第二节

筅森魡賤 提交于 2020-02-26 13:31:33
前言 有了第一小节的经验,我们可以对直接的动画效果做一些升级效果,如果组合 :before 、 :after ,效果有更酷。 请先看一下效果示例吧: 下面一个一个示例讲解 示例一 <button class="btn-1">按钮一</button> <style> button{ position: relative; width: 100px; height: 40px; border: 1px solid #46b0ff; background: none; cursor: pointer; overflow: hidden; } button:before, button:after{ position: absolute; content: ''; width: 100%; height: 100%; z-index: -1; transition: all .5s; } /* 按钮一 */ .btn-1:before{ top: 0; height: 0; left: 0; } .btn-1:after{ bottom: 0; height: 0; left: 0; background: rgba(70, 176, 255, 1); } .btn-1:hover:before, .btn-1:hover:after{ height: 50%; background:

干货:图解算法——动态规划系列

浪尽此生 提交于 2020-02-26 08:19:22
小浩:宜信科技中心攻城狮一枚,热爱算法,热爱学习,不拘泥于枯燥编程代码,更喜欢用轻松方式把问题简单阐述,希望喜欢的小伙伴可以多多关注! 动态规划系列一:爬楼梯 1.1 概念讲解 讲解动态规划的资料很多,官方的定义是指把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。概念中的各阶段之间的关系,其实指的就是状态转移方程。很多人觉得DP难(下文统称动态规划为DP),根本原因是因为DP区别于一些固定形式的算法(比如DFS、二分法、KMP),没有实际的步骤规定第一步第二步来做什么,所以准确的说,DP其实是一种解决问题的思想。 这种思想的本质是:一个规模比较大的问题(可以用两三个参数表示的问题),可以通过若干规模较小的问题的结果来得到的(通常会寻求到一些特殊的计算逻辑,如求最值等) 所以我们一般看到的状态转移方程,基本都是这样: opt :指代特殊的计算逻辑,通常为max or min。 i,j,k 都是在定义DP方程中用到的参数。 dp[i] = opt(dp[i-1])+1 dp[i][j] = w(i,j,k) + opt(dp[i-1][k]) dp[i][j] = opt(dp[i-1][j] + xi, dp[i][j-1] + yj, ...) 每一个状态转移方程,多少都有一些细微的差别。这个其实很容易理解,世间的关系多了去了,不可能抽象出完全可以套用的公式

干货:图解算法——动态规划系列

霸气de小男生 提交于 2020-02-25 19:47:12
小浩:宜信科技中心攻城狮一枚,热爱算法,热爱学习,不拘泥于枯燥编程代码,更喜欢用轻松方式把问题简单阐述,希望喜欢的小伙伴可以多多关注! 动态规划系列一:爬楼梯 1.1 概念讲解 讲解动态规划的资料很多,官方的定义是指把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。概念中的各阶段之间的关系,其实指的就是状态转移方程。很多人觉得DP难(下文统称动态规划为DP),根本原因是因为DP区别于一些固定形式的算法(比如DFS、二分法、KMP),没有实际的步骤规定第一步第二步来做什么,所以准确的说,DP其实是一种解决问题的思想。 这种思想的本质是:一个规模比较大的问题(可以用两三个参数表示的问题),可以通过若干规模较小的问题的结果来得到的(通常会寻求到一些特殊的计算逻辑,如求最值等) 所以我们一般看到的状态转移方程,基本都是这样: opt :指代特殊的计算逻辑,通常为max or min。 i,j,k 都是在定义DP方程中用到的参数。 dp[i] = opt(dp[i-1])+1 dp[i][j] = w(i,j,k) + opt(dp[i-1][k]) dp[i][j] = opt(dp[i-1][j] + xi, dp[i][j-1] + yj, ...) 每一个状态转移方程,多少都有一些细微的差别。这个其实很容易理解,世间的关系多了去了,不可能抽象出完全可以套用的公式

Pascal's Triangle II(帕斯卡三角形)

大兔子大兔子 提交于 2020-02-13 09:22:46
Given an index k , return the k th row of the Pascal's triangle. For example, given k = 3, Return [1,3,3,1] . Note: Could you optimize your algorithm to use only O ( k ) extra space? 杨辉三角形,西方称为帕斯卡三角形     杨辉三角 1、每行数字左右对称,由1开始逐渐变大,然后变小,回到1。 2、第n行的数字个数为n个。 3、第n行数字和为2^(n-1)。 4、每个数字等于上一行的左右两个数字之和。可用此性质写出整个帕斯卡三角形。 5、将第2n+1行第1个数,跟第2n+2行第3个数、第2n+3行第5个数……连成一线,这些数的和是第2n个斐波那契数。将第2n行第2个数,跟第2n+1行第4个数、第2n+2行第6个数……这些数之和是第2n-1个斐波那契数。 6、第n行的第1个数为1,第二个数为1×(n-1),第三个数为1×(n-1)×(n-2)/2,第四个数为1×(n-1)×(n-2)/2×(n-3)/3…依此类推。 7.两个未知数和的n次方运算后的各项系数依次为杨辉三角的第n行。 把每一行看做一个矩阵或者向量,则第n行比第n-1行多一个元素,且每一行的第一个元素都等于1

动态规划( python)

吃可爱长大的小学妹 提交于 2020-02-11 03:55:59
  动态规划的三要素:最优子结构,边界和状态转移函数,最优子结构是指每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到(子问题的最优解能够决定这个问题的最优解),边界指的是问题最小子集的解(初始范围),状态转移函数是指从一个阶段向另一个阶段过度的具体形式,描述的是两个相邻子问题之间的关系(递推式)   重叠子问题,对每个子问题只计算一次,然后将其计算的结果保存到一个表格中,每一次需要上一个子问题解时,进行调用,只要o(1)时间复杂度,准确的说,动态规划是利用空间去换取时间的算法.   判断是否可以利用动态规划求解,第一个是判断是否存在重叠子问题, 例子: 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/23/dynamic-programming

120.三角形最短路径(leetcode)

淺唱寂寞╮ 提交于 2020-02-08 17:51:38
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 法1): 本题典型的回溯算法,但是没有剪枝,在42/43个case的时候超时了,以下是代码。 PS:尝试过如果当前和大于全局最小,则停止,但是由于有负数的存在,现在大的值也可以通过-9999成为最小值,剪枝失败。 class Solution: def minimumTotal(self, triangle: List[List[int]]) -> int: if not triangle or not triangle[0]: return 0 depth = len(triangle)-1 self.minSum = 9999 def helper(curSum,curdepth,j): if curdepth == depth: if curSum<self.minSum: self.minSum = curSum return helper(curSum+triangle[curdepth + 1][j],curdepth+1,j) helper(curSum+triangle[curdepth + 1][j+1],curdepth+1,j+1) helper(triangle[0][0],0,0) return self.minSum 法2)动态规划 用动态规划之前,必须想清楚,空间换时间

CSharpGL(21)用鼠标拾取、拖拽VBO图元内的点、线或本身

只愿长相守 提交于 2020-02-06 13:57:26
CSharpGL(21)用鼠标拾取、拖拽VBO图元内的点、线或本身 效果图 以最常见的三角形网格(用GL_TRIANGLES方式进行渲染)为例。 在拾取模式为GeometryType.Point时,你可以拾取单个的顶点。 在拾取模式为GeometryType.Line时,你可以拾取任意一个三角形里的任意一条线。即同时拾取此线段的两个顶点。 在拾取模式为GeometryType.Triangle时,你可以拾取任意一个三角形。即同时拾取此三角形的三个顶点。 实际上,CSharpGL实现了在所有渲染模式下拾取Point、Line、Triangle、Quad和Polygon的功能。(当然,你可以想象,如果想在一个GL_TRIANGLES渲染方式下拾取一个Quad,那是什么都拾取不到的)下面是描述这一功能的图示。由于我的白板小,就没有列出GL_TRIANGLES_ADJACENCY、GL_TRIANGLE_STRIP_ADJACENCY、GL_LINES_ADJACENCY、GL_LINE_STRIP_ADJCANCEY这几个情况。 下载 CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入( https://github.com/bitzhuwei/CSharpGL ) 规定 为了简便描述,我用 GL_LINE* 代表GL_LINES、GL_LINE_STRIP、GL