LeetCode 1143.最长公共子序列
最长公共子序列给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,”ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。
若这两个字符串没有公共子序列,则返回 0。
示例 1:12输入:text1 = "abcde", text2 = "ace" 输出:3 解释:最长公共子序列是 “ace”,它的长度为 3。示例 2:12输入:text1 = "abc", text2 = "abc"输出:3解释:最长公共子序列是 “abc”,它的长度为 3。示例 3:12输入:text1 = "abc", text2 = "def"输出:0解释:两个字符串没有公共子序列,返回 0。
提示:121 <= te ...
LeetCode 300.最长上升子序列
最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。
示例:123输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。
说明:
可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。
进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?
1234567891011121314class Solution(object): def lengthOfLIS(self, nums): """ :type nums: List[int] :rtype: int """ l = len(nums) if l==0 or l==1: return l dp = [1]*l for i in range(1, l): for j in range(0, ...
Leetcode 413.等差数列划分
等差数列划分如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。
例如,以下数列为等差数列:
1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9
以下数列不是等差数列。
1, 1, 2, 5, 7
1数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。
如果满足以下条件,则称子数组(P, Q)为等差数组:1元素 A[P], A[p + 1], ..., A[Q - 1], A[Q] 是等差的。并且 P + 1 < Q 。函数要返回数组 A 中所有为等差数组的子数组个数。
示例:
A = [1, 2, 3, 4]
返回: 3, A 中有三个子等差数组: [1, 2, 3], [2, 3, 4] 以及自身 [1, 2, 3, 4]。
思路 + 代码首先对于等差序列 B, 其元素数量为n,则其包含的连续自等差序列的总数为 1+2+…+n-2,因此,该题转化为寻找序列中,最长的连续子等差序列,然后根据其数量判断。
123456789101 ...
LeetCode 打家劫舍 II
题目你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
示例 1:123输入: [2,3,2]输出: 3解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。示例 2:1234输入: [1,2,3,1]输出: 4解释: 你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。
思路 + 代码关键是环,可以通过 0~len-2, 1~len-1分别遍历规避掉环的问题。
1234567891011121314class Solution: def subRob(self, s, e, nums)->int: pre1, pre2, cur = 0, 0, ...
Vue + Express + MySQL驾驶行为分析全栈项目(六): ECharts实现轨迹动态可视化
背景自己做了一点点的小尝试:基于前馈神经网络 LSTM 的个体出行目的地预测模型,基于个体历史出行数据,模型可以实现出行目的地的实时动态预测功能。
模型其实具有实际应用功能,为了对其应用场景进行探索,拟开发一个全栈的项目,在Web客户端实现用户出行的动态预测效果,同时能够提供数据可视分析等功能。
项目地址
可视化效果
轨迹的动态可视化预期效果可以参考: https://www.echartsjs.com/examples/zh/editor.html?c=lines-bmap-effect
ECharts准备首先安装EChart组件
1npm install echarts --save
然后在 Vue 的 main.js 文件中引入百度地图依赖
1require('echarts/extension/bmap/bmap');
封装百度地图轨迹可视化模块我们将百度地图轨迹可视化单独包装成一个模块 EChartsMap.vue,该模块作用是接收父模块传来的可视化数据及设置参数,实现对应的可视化效果。
首先创建界面模版:
1234567891011<templat ...
LeetCode 524.通过删除字母匹配到字典里最长单词
题目给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。
示例 1:12345输入:s = "abpcplea", d = ["ale","apple","monkey","plea"]输出: "apple"1234567示例 2:输入:s = "abpcplea", d = ["a","b","c"]输出: "a"
说明:所有输入的字符串只包含小写字母。字典的大小不会超过 1000。所有输入的字符串长度不会超过 1000。
思路 + 代码快慢指针判断是否在字符串里面
12345678910111213141516171819202122232425262728293031class Solution: def isInWor ...
LeetCode 763. 划分字母区间
题目字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。
示例1:123456输入: S = "ababcbacadefegdehijhklij"输出: [9,7,8]解释:划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。
注意:12S的长度在[1, 500]之间。S只包含小写字母'a'到'z'。
思路 + 代码贪心算法。
统计每个字母出现的最后位置,最优分割是该区间内任意一个字母的最大位置都包括在内。
1234567891011class Solution: def partitionLabels(self, S: str) -> List[int]: ...
Vue + Express + MySQL驾驶行为分析全栈项目(五): Leftlet热力图实现
背景自己做了一点点的小尝试:基于前馈神经网络 LSTM 的个体出行目的地预测模型,基于个体历史出行数据,模型可以实现出行目的地的实时动态预测功能。
模型其实具有实际应用功能,为了对其应用场景进行探索,拟开发一个全栈的项目,在Web客户端实现用户出行的动态预测效果,同时能够提供数据可视分析等功能。
项目地址
可视化效果
Leftlet底图模块构建需要安装的依赖库与样式查看Vue + Express + MySQL驾驶行为分析全栈项目(四): Leftlet组件与图层加载功能。
在 src/components/common 文件夹下添加 LeftletMap.vue文件,作为Leftlet地图的基础模块。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748// LeftletMap.vue<template> <div class="map"> </div></template><scri ...
Vue + Express + MySQL驾驶行为分析全栈项目(四): Leftlet组件与图层加载功能
背景自己做了一点点的小尝试:基于前馈神经网络 LSTM 的个体出行目的地预测模型,基于个体历史出行数据,模型可以实现出行目的地的实时动态预测功能。
模型其实具有实际应用功能,为了对其应用场景进行探索,拟开发一个全栈的项目,在Web客户端实现用户出行的动态预测效果,同时能够提供数据可视分析等功能。
项目地址
可视化效果
准备工作
首先下载安装 leftlet。
1npm install leaflet --save
然后在全局入口 main.js 文件中引入leftlet,包括样式文件
123456// 引入插件与样式import * as L from 'leaflet';import 'leaflet/dist/leaflet.css';// 全局注册Vue.L = Vue.prototype.$L = L;
安装leftlet地图图层的加载插件— leaflet.chinatmsproviders
1npm i leaflet.chinatmsproviders --save
123import * as Provider from ...
Vue + Express + MySQL驾驶行为分析全栈项目(三): 前端设计
背景自己做了一点点的小尝试:基于前馈神经网络 LSTM 的个体出行目的地预测模型,基于个体历史出行数据,模型可以实现出行目的地的实时动态预测功能。
模型其实具有实际应用功能,为了对其应用场景进行探索,拟开发一个全栈的项目,在Web客户端实现用户出行的动态预测效果,同时能够提供数据可视分析等功能。
项目地址
可视化效果
前端结构设计下图是整个项目的结构,也就是采用Vue-cli脚手架搭建的前端项目结构
buile 文件夹存放项目构建脚本。config 文件夹存放项目的配置信息,包括webpack配置及端口转发等。dist/docs 文件夹存放的是项目构建后的内容,即编译出的项目代码。node_modules 这个目录存放的是项目的所有依赖,即 npm install 命令下载下来的文件。server 文件夹存放的是服务器相关代码与数据。src 存放前端项目的源码。static 存放项目的静态资源。index.html 项目的入口页,也是唯一的HTML页面。package.json 定义了项目的所有依赖,包括开发时依赖和发布时依赖。
其中前端开发的大多工作是在 src 文件夹下进行的, ...