- 博客(58)
- 收藏
- 关注
原创 最长的指定瑕疵度的元音子串
题目定义与要求最长的指定瑕疵度的元音子串问题是一个典型的。这个问题要求在给定的字符串中找到瑕疵度符合特定要求的最长元音子串,并返回其长度。具体来说,瑕疵度是指一个元音字符串中非元音字符的数量。瑕疵度的定义:在这个问题中,瑕疵度指的是元音字符串中非元音字符的数量。元音字符串的定义:开头和结尾都是元音字母(aeiouAEIOU)的字符串被定义为元音字符串。子串的定义:子串是指字符串中任意个连续字符组成的子序列。下面将从多个角度详细解析该问题:解题方法核心思想与逻辑算法实现细节。
2024-07-16 17:17:38 408
原创 游戏分组(DFS)
DFS在解决特定类型的分组问题时,特别是需要遍历所有可能组合的情况,表现出了其独特的优势。将10名参赛者根据其游戏水平评分分为实力尽量相近的两队。
2024-07-16 17:16:37 208
原创 最多可以派出多少支球队
解决“最多可以派出多少支球队”的问题需要准确理解题目要求,选择合适的算法(如贪心算法和双指针技术),并注意对原始数据进行适当的预处理(如排序)。在编程实现过程中,有效的输入输出处理、合理的数据结构和算法选择都是关键因素。
2024-07-16 17:14:07 178
原创 狒狒吃香蕉(二分查找)
如果超过H小时,则必须加快速度。因此,我们需要找到这样一个临界速度K,它既是狒狒能够在H小时内吃完香蕉的最小速度,又确保狒狒能够慢慢享用。在实现二分查找的过程中,需要注意的是,当计算在某个速度下狒狒吃完香蕉所需的时间时,如果某一堆香蕉的数量小于这个速度,狒狒将在那个小时内吃掉这整堆香蕉,并且不会再吃更多的香蕉,下一个小时内才会开始吃另一堆。综上所述,通过二分查找算法,我们可以高效地解决“狒狒吃香蕉”的问题,找到一个既符合时间限制又尽可能慢的速度K,让狒狒能够在享受美食的同时,不至于被警卫发现。
2024-06-13 13:50:16 170
原创 拖动图片到其他容器
/ 想要触发ondrop事件,需要在ondragover里面阻止默认行为。利用事件委托处理多个可拖动的元素。// 获取拖动元素的信息 利用setData方法。// 1.将元素设置成可拖放的。
2024-05-22 15:01:20 941
原创 TODOLIST
TODOLIST效果如图要求:当输入 todo 项时,按回车键,todo list 增加一项未完成的 todo 记录。当点击最顶部 input 旁边的 checkbox 开关,如果是选中状态,所有的 todo 项都需选中,反之亦然。当点击某一项 todo 的 checkbox 时,如果是选中状态,该 todo 文字变灰,并且文字带删除中划线。底部要实时记录当前还有多少项未完成的 todo list。底部三个按钮可分别过滤出不同状态的todo list:「所有」、「未完成」、「已完成」可删
2024-05-22 14:46:56 677
原创 image图片之间的间隙消除
产生原因:由于img元素默认的垂直对齐方式为基线对齐vertical-aligh: baseline。给img标签添加样式;给img标签添加样式。
2023-11-17 20:08:04 604
原创 element-ui修改源码
新建组件,在该组件中mixin element的组件,然后copy template进行修改,修改完成后正常提交代码。没有识别这种语法的loader, 这个是render函数,jsx语法,需要babel-loader去识别修改完成之后,运行不再抱错,但浏览器显示编译后的文件中变量访问undefined报错:略图解决方案:【因为新组件中mixin的内容】这种方式的更改组件按照正常代码提交即可。
2023-11-17 16:51:03 94 1
原创 vim命令
vim编辑器有三种模式:命令模式、编辑模式、末行模式模式间切换方法:(1)命令模式下,输入:后,进入末行模式(2)末行模式下,按esc慢退、按两次esc快退、或者删除所有命令,可以回到命令模式(3)命令模式下,按下i、a等键,可以计入编辑模式(4)编辑模式下,按下esc,可以回到命令模式。
2023-11-17 16:09:15 252
原创 最大子序和
思路: 将问题转化为:子数组【0, i】的最大和连续子数组。dp数组存放nums[i]之前的最大和,dp[i+1] = Math.max(dp[i-1]+nums[i], nums[[i])时间复杂度: O(n)分治法思路: 参考力扣官网总结
2022-08-14 16:21:02 192
原创 直线上最多的点数
149. 直线上最多的点数题目: 给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。解法1:暴力求解思路: 利用基准点和斜率(y1-y1/x1-x2),两层循环,每次将与基准点构成的不同斜率存在hash中,相同则计数,一趟下来求max。注意点:需要区别y1-y2 === 0 和 x1-x2 === 0 的情况。时间复杂度: O(n^2)空间复杂度:O(n)var maxPoints = funct
2022-05-31 19:04:51 311 1
原创 单词拆分(用字典元素拼出字符串)
139. 单词拆分动态规划dp[i]代表的是能够实现str【0,i】的boolean值。判断的是j(从【0,i】【j,i】的子字符串是否在字典中,且对应的dp[j]存在。即【0,j】子字符串可以实现,且【j,i】存在在字典中,那么当前dp[i]也可以实现,值为true。var wordBreak = function(s, wordDict) { const dp = Array(s.length+1).fill(false); dp[0] = true; const
2022-05-22 16:14:24 247
原创 括号生成方案
22. 括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。暴力解法(回溯+dfs)每个位置有两种可能左括号或者右括号,需要额外判断括号的有效性时间复杂度: O(2^2n * n)空间复杂度: O(n)可以优化不需要判断有效性。var generateParenthesis = function(n) { let path = [], result = [], arr = ['(', ')']; let isvalidlog
2022-05-20 18:04:05 307
原创 滑动窗口方案
滑动窗口方案滑动窗口中用到了左右两个指针,它们移动的思路是:以右指针作为驱动,拖着左指针向前走。右指针每次只移动一步,而左指针在内部 while 循环中每次可能移动多步。右指针是主动前移,探索未知的新区域;左指针是被迫移动,负责寻找满足题意的区间。在最少交换次数中 主要利用的就是滑动窗口的方案解题, 本篇文章主要介绍其他的一些利用滑动窗口的思想的题目。统计整数由连续自然数相加的数量统计一个整数可以由连续的自然数之和来表示给定一个整数, 计算该整数有几种连续自然数之和的表达式,并打印出每一种表
2022-04-24 21:12:09 218
原创 图(连通网络的操作次数etc)
1319. 连通网络的操作次数用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回
2022-04-18 11:38:51 131
原创 报文解压缩
报文解压缩思路: 通过用例发现需要考虑嵌套和不嵌套的情况;通过正则匹配字符串中‘3[k]’这中形式的字符串;判断匹配是否有结果;匹配有结果则取遍历匹配结果arr;每一个子项通过获取到重复次数和重复的字符子串,计算重复的字符串结果并替换到str中;重复1——4部,最后返回str// 解压密码// 3[k]2[mn]--kkkmnmn 3[m2[c]]--mccmccmccvar jieya = function (str) { let arr = str.match(/
2022-04-13 15:03:47 1377
原创 最少交换次数--(滑动窗口方案)
题目要求:给出一个数组nums,你需要通过交换位置,将数组中 任何位置 上的 小于 k 的整数 组合到一起,并返回所有可能中所需最少的交换次数。输出将数组A中小于k的整数组合到一起的最小交换次数。组合在一起是指满足条件的数字相邻,不要求在数组中的位置相邻。主要想法:滑动窗口的思想根据终点状态(交换后,1 都连在一起),逆推检查过程,所有 1 连在一起就意味着「原数组中 k 个 1」刚好可以让数组中长度为 k 的子数组的和为 k(使用前缀和可快速得到所有长度为 k 的区域中的数值之和
2022-04-06 21:27:19 4036 1
原创 数组有关算法
剑指 Offer II 119. 最长连续序列给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/SsGoHCvar longestConsecutive = function(nums) { let order = []; let len = 0; for(let i = 0; i < nums.length; i+
2022-03-16 13:49:37 114
原创 链表数据计算
2. 大数相加function ListNode(val, next) { this.val = (val===undefined ? 0 : val) this.next = (next===undefined ? null : next)}// 构建链表function makeNum(arr) { let index = 1; let result = new ListNode(arr[0]); while(index < arr.length)
2022-01-27 13:49:42 379
原创 字符串计算
3. 无重复字符的最长子串var lengthOfLongestSubstring = function(s) { let max = 0; for(let i = 0; i < s.length; i++) { let len = 1, flag = false; for(let j = i+1; j < s.length; j++) { len = j - i; let str = s.sub
2022-01-27 13:46:29 953
原创 广度遍历BFS和深度遍历DFS
广度优先遍历BFS先遍历这个节点的相邻节点,再依次遍历每个相邻节点的相邻节点。树的广度优先遍历,每个节点的值即为它们的遍历顺序。所以广度优先遍历也叫层序遍历.let arr = [ { title: '1', children: [ { title: '1.1', children: [ {
2021-11-29 14:12:37 142
原创 数据全排列组合
组合总和组合总和 II全排列全排列 II子集子集 II这类题目都是同一类型的,用回溯算法!其实回溯算法关键在于:不合适就退回上一步然后通过约束条件, 减少时间复杂度.大家可以从下面的解法找出一点感觉!...
2021-11-29 10:59:07 289
原创 前端那些新东西
window.getComputedStyle:mdn介绍返回一个对象,在应用样式表解析并计算完成后,包含指定元素的所有css属性值。let style = window.getComputedStyle(element, [pseudoElt]);描述: 返回对象与从元素style属性返回的对象具有相同的类型。但从getComputedStyle返回的对象是只读的,用于检查元素样式;el.style对象用于在特定元素上设置样式。defaultView: 在许多在线的演示代码中,getComp.
2021-11-23 19:30:45 621
原创 动态规划实例
引入——fibonaci// fibonaci// 记录状态的递归,减少重复计算function fibonaci(n) { let array = new Array(n).fill(0); function digui(n) { if (n == 1 || n == 2) { return 1; } else if (array[n]) { return array[n]; } els
2021-11-09 17:05:18 408
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人