首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

「拥抱开源」我的第 N 个开源项目

. ---- 背景 我从2014年以来一直有在 GitHub 写开源项目的习惯。...但是,很多开源项目因为各种原因已经不在更新或者删库了。例如技术的迭代、逐渐不再维护(俗称的烂尾)等等。 所以,我对 GitHub 开源是非常关注,包括看其他神仙公司、或者程序员大佬们的开源项目。...---- 起源 2020年是一个灾年。从上帝视角(精神与物质能量守恒定律)来看,当给关上一扇窗户的时候,那必然会打开新的一扇窗户。 那么当上帝给你关掉很多扇窗户的时候,你可以尝试砸开一堵墙 。...于是,在学习大佬的开源项目的时候,突然迸发出了想要自己开源项目的热情(绝对不是捡树枝太累导致的)。 ---- 现状 上周六提交了第一行代码。...由于只有周末才有时间进行添砖加瓦,所以第一个目标是完成核心三大板块:会员、商品、订单。 ---- 小结 作为程序员,开源项目是必须要了解、参与进去的。(免费的东西,它不香吗?)

46820

【LeetCode】返回链表的中间结点、删除链表的倒数第 N 个结点

如果有两个中间结点,则返回第二个中间结点。 示例: 输入:head = [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结点,值为 3 。...分析:我们要找到中间节点,是不是有两种可能性,节点数为奇数和偶数两种,奇数的话很简单就是中间的节点,偶数是不是中间就有两个节点,根据题中意思,我们需要返回的是这两个节点中的第二个节点,我们的方法是采用两个伪指针的方法...N 个结点 题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。...根据上一题的思路,我们仍然采用双指针去找到倒数第n个节点,我们该怎么想呢?上一题因为它们走的步差到最后刚好一半,那这道题是不是也是这种思路呢?...没错就是这种思路,不过和上道题不同的是这次我们让它一开始就差距n步,那fast走到最后,因为差了n步,slow是不是就恰好在倒数第n个节点的位置,对就是这种思路。

5910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    删除链表的倒数第N个节点,并返回链表的头节点

    大概的内容:删除链表的倒数第N个节点,并返回链表的头节点。...ListNode next; ListNode(int x) { val = x; } } 0x01:两次循环求长度 实现思路: 1、先循环一遍链表,求出链表的长度L,倒数第N...个节点就是从开头数第(L-N+1)个节点,将此节点的next指向下下节点就可以了。...2、第一个指针节点向前移动N+1步,第二个指针保持不动,这时两个指针相隔N个节点的距离 3、同时移动两个指针保持恒定的距离,直到第一个指针到达最后一个节点。...4、这时第二个指针所指向的节点的下一个节点就是要删除的节点(倒数第N个节点),将第二个指针指向的节点的next指向下下个节点就完成了。 ?

    47320

    漫画:如何找到链表的倒数第n个结点?

    我们以下面这个链表为例: 给定链表的头结点,但并不知道链表的实际长度,要求我们找到链表的倒数第n个结点。 假设n=3,那么要寻找的结点就是元素1: 如何利用队列呢?...小灰的思路如下: 1.创建一个长度为n的队列,遍历原始链表,让结点逐一进入队列: 2.当队列已满时,让队尾元素出队,新结点入队: 3.当链表全部结点遍历完毕时,队尾的元素就是倒数第n个结点(因为队列长度是...n): 首先,我们创建两个指针P1和P2,P1指向链表的头结点,P2指向链表的正数第n个结点(也就是例子中的第3个结点): 接下来,我们让指针P1和P2同时循环右移,每次右移一步,直到指针P2移动到链表的末尾...: 此时,由于P2指向链表的尾结点,且P1和P2的距离是n-1,因此P1所指的结点就是我们要寻找的链表倒数第n个结点: 显然,这个方法从头到尾只需要对链表做一次遍历,而且仅仅使用了两个指针,算法的空间复杂度是...head; Node p2 = head; //把p2指针移动到正数第n个结点 for(int i=1; in; i++){ p2

    83840

    太原面经分享:如何用js实现返回斐波那契数列的第n个值的函数

    ,求第n个数的值” 不得不承认,当时我第一眼看这道题大脑里是懵逼的。后来才想起来,这不就是数学题里的那个斐波那契(肥婆纳妾)数列么!从第三个数开始,每个数都是前两个数的和。...那其实这个问题还可以换个问法:实现一个函数,输入一个数字n能返回斐波那契数列的第n个值。 大概的思路是这样的: 首先我们要把特殊的部分给独立出来做个判断,哪些数字是特殊的呢?...然后定义三个变量,firstNum、secondNum、total,分别代表着第一个数字,第二个数字,还有他们俩之和。...以此根据传入的n来不断地循环叠加,达到想要的total值,最后return返回出去。...(n) { if(n >= 2) { return series(n-1) + series(n-2) }else { return n; } } // console.log

    1K30

    链表-如何高效删除链表的倒数第N个节点

    题目 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点 示例 给定一个链表: 1->2->3->4->5, 和 n = 2 当删除了倒数第二个节点后,链表变为 1->2->3->5 思考...定义一个链表结构体 type ListNode struct { Val int Next *ListNode } //删除链表中倒数第N个节点 func removeNthFromEnd...= nil{ len++W temp1 = temp1.Next } //倒数第n个就等正数的第(len-n)+1个 m := len- n...解法二 解法一已经实现了我们想要的功能,我们回看上面的思考(只扫描一趟实现此功能),我们看这个问题的本质,倒数第n个就等正数的第(len-n)+1个,我们看下图: ?...分析上面的图声明三个变量,one,two两个指针变量,i是一个int变量,one和two指向链表的头节点,one开始遍历链表,每遍历一个节点,变量i进行加1,当变量i大于n时(就是倒数第n个,在这里n是

    1.3K30

    如何删除给定单向链表的倒数第N个元素

    如何删除给定单向链表的倒数第N个元素? 先分析下有哪些关键词: 1. 单向链表,那也就是我们只能单向遍历; 2....倒数第N个元素,只能先遍历到尾部,才知道倒数第N个元素是什么,但问题又出现了,是单向链表,不能反向遍历,那该如何解决呢? 3....以如下队列为例,如果要删除倒数第2个元素,就要找到倒数第3个元素,也就是倒数第N+1个元素,那改如何做呢? 首先一定需要一个指针遍历到队列尾部的,那怎么记录这个指针已经遍历过的元素呢?...两个指针按照同样的速度同时移动,当快指针到达结尾的时候,慢指针也就到达了倒数第N+1个元素的位置. 再细分下,如果要删除的目标元素正好和链表长度相同呢?...{ // 删除元素正好是边界值时,返回链表第二个元素做为新链表首元素 return head.next; } else {

    67310

    2023-05-17:一个正整数如果能被 a 或 b 整除,那么它是神奇的。 给定三个整数 n , a , b ,返回第 n 个神奇的数字。 因为答案可能很大,

    2023-05-17:一个正整数如果能被 a 或 b 整除,那么它是神奇的。给定三个整数 n , a , b ,返回第 n 个神奇的数字。...因为答案可能很大,所以返回答案 对 10^9 + 7 取模 后的值。输入:n = 4, a = 2, b = 3。输出:6。...2.初始化变量 l 为0,变量 r 为 (n * min(a, b)),其中 min(a, b) 表示 a 和 b 中的最小值。在这个范围内通过二分查找获得第 n 个神奇数字。...5.如果出现的神奇数字总数小于 n,则将左边界向右移动一位(即扩大区间的范围),并继续迭代。6.二分查找过程结束后,返回答案 ans % (10^9 + 7)。...在这个算法中,使用了二分查找来搜索第 n 个神奇数字。在最坏情况下,二分查找的迭代次数为 O(logN)。因此,时间复杂度为 O(logN)。

    39800

    Power BI 计算组理解(一)

    有时为了节省页面空间,让当前报表提供更多的信息,经常会有这样的设计,即提供一些选项给报表使用人,当报表使用人选定某个项目时,当前报表才显示该项目的信息,如下: ?...(2)使用辅助表,利用DAX新建一个用于显示切换的度量值步骤如下: 新建一个辅助表: ? 构建度量值: ?...但有一个问题,该度量值的显示格式只能设置为单一样式(如利润率想设置为百分比,其他设置为逗号分隔的整数样式),如果使用DAX中format函数分别指定样式,其结果又变成了文本,无法参与后续计算,在视觉对象中呈现会有许多限制...如表1中的度量值虽然是通过辅助表与DAX重写了,但是由于计算组表[Name]列中的“收入”是选定状态,在交互筛选的作用下,表1表2中的度量值都会传入计算组,然后返回收入计算项定义的值(表达式),也就是显示...[收入],即使目前表1对应的辅助表的指标名称选定为“利润”。

    2.4K20

    DAX中的基础表函数

    《DAX权威指南》一书的第12章和第13章中介绍了更多的表函数。本文将解释DAX中最常见和重要的表函数的作用,以及如何在常见的场景中,包括标量表达式中使用它们。...重要  在前面的代码中,你看到了一个将FILTER函数返回的结果进行求和的示例。这不是最佳做法。在《DAX权威指南》的第4章中,你将学习如何使用CALCULATE函数来实现更灵活、更高效的筛选。...一条DAX查询语句是一个返回表的DAX表达式,与EVALUATE语句一起使用。...在本书的后面,你还会学习到如何利用DISTINCT函数代替VALUES函数来避免循环依赖关系。在《DAX权威指南》的第15章中会讨论这种用法。 VALUES和DISTINCT函数也接受表作为参数。...实际上,ALLSELECTED是一个非常复杂的表函数——可能是DAX中最复杂的表函数。在第14章中会介绍关于它的所有用法。

    2.7K10

    PowerBI DAX 递归问题如何解 - 比例型

    有很多小伙伴常常问到含有递归特性的 Power BI DAX 计算问题,这在 DAX 中应该如何解呢? 本文来阐述【比例型】的解决方案。...例如,这里给出比例型递归问题的通用 DAX 解法。 比例型递归 设:X (n) = X (n-1) * A (n-1),其中 A (n-1) 为已知序列 A (n) 中的元素。...DAX 合并模式 首先,来合并一个待预测的序列,使用标准的 DAX 设计模式,如下: Year.Combine = SUMMARIZE( FILTER( UNION(...设 X (0) 是最后一个已知的元素。...该递归化解的方法,可以解决一大票常见的 DAX 递归问题,但并不能解决任意递归问题。本例的特点在于第 n 项与第 n-1 项是一种单纯的比例关系,对于复杂的函数运算关系,则很可能无法求解。

    1.1K21

    Excel催化剂功能第5波-使用DAX查询从PowerbiDeskTop中获取数据源

    ,即拖拉到透视表的行或列区域的字段的项目数量很多时,如查询不同区域的销售额,是一个很不错的MDX查询,区域最多就10多个区域分区,但如果查询的是每个店铺(假设500家店铺)下每个商品SKU(假设1000...今天插件再上一超级功能,让Excel顺利向PowerbiDeskTop发出DAX查询,而且不单单可以手动写DAX查询,还可以像操作透视表一样只需通过拖拉字段的方式,自动生成所需的DAX查询并返回查询数据结果...下图序号3 此区域是前面序号2的DAX查询语句的优化版本,删除不必要的TOPN等限制返回数据数量的语句,精简出真正符合要求的DAX查询。...DAX查询是个很庞大的复杂的查询,好比SQL查询也可以写出很复杂的查询语句,比自动生成的语句更能满足查询结果,有写DAX查询语句能力的,可写好DAX语句直接粘贴到序号3的位置即可。...额外辅助功能 前面提到的DAX查询界面的功能是本次主要功能,有了DAX查询语句,只需简单点击新表查询或覆盖现有表查询,即可发出DAX查询并返回对应的数据结果。

    6.4K30

    《DAX进阶指南》-第6章 动态可视化

    阅读其他章节: Extreme DAX-前言 Extreme DAX-第1章 商业智能中的DAX Extreme DAX-第2章 模型设计 Extreme DAX-第3章 DAX 的用法 Extreme...DAX-第4章 上下文和筛选 Extreme DAX-第5章 基于DAX的安全性 Power BI 学谦 开始本章翻译时,是5月初。...度量值之前,让我们讨论如何使用辅助表。...我们的”二次幂”方法支持允许选择两个或多个项目的场景。 6.2.3创建动态DAX度量值 既然我们已经知道如何检测辅助表上的切片器选项,我们可以使用 SWITCH 函数来选择正确的基本度量值。...保持合乎逻辑的顺序是一个很好的习惯,但是显而易见,通过将最常见的选项放到第一个,你可能会稍微提高一些性能。 总结 在本章中,你学习了如何使用辅助表来捕获用户输入。

    5.7K50

    Extreme DAX-第4章 上下文和筛选

    如第 3 章“DAX的用法”中所述,我们不鼓励使用计算列。这并不意味着您不必处理行上下文。行上下文在 DAX 表函数中也起着重要作用。本章稍后将对此进行详细介绍。 OK!...它们有多种类型:切片器、筛选器窗格中的筛选器、视觉对象中的标签或其他视觉对象中的选定项。...它们还可用于实现特定的 DAX 度量值行为,尽管在此过程中存在一些陷阱。您可以在第5章使用 DAX 构建安全性中找到一些示例。...在这种情况下,fSales 表中选定的行将传递选择 Cities 表中的相应行,然后我们就可以计算州的数量。 显然,必须改变关系的筛选器传递方向,DAX 公式如下。...在 Power BI 模型中使用相同的函数创建计算表可能会有所帮助,但无论如何,使用 DAX 表函数需要一定程度的抽象思维。

    5.8K21

    个人永久性免费-Excel催化剂功能第36波-新增序列函数用于生成规律性的循环重复或间隔序列

    间隔循环整数函数使用 不止于常规的从1开始,升序排列,可以在5个参数上灵活调整,得到想要的效果 最后一个参数RepeatTimes还可以省略不输入,此时将以当前数据区域的结尾行为终点填充,可能不是一个连续的循环片段...重复循环整数函数使用 最后一个参数LastIndex还可以省略不输入,此时将以当前数据区域的结尾行为终点填充,可能不是一个连续的循环片段。见下图的最右边函数公式 ?...列字母重复循环序列 重复选定区域 重复选定区域,某些场景也需要使用,快速生成多份数据且调整数据结构(多列变为一列)。 ? 重复选定区域输入参数说明 具体的多种灵活处理效果如下图: ?...,重新定义Excel函数的学习和使用方法 第5波-使用DAX查询从PowerbiDeskTop中获取数据源 第6波-导出PowerbiDesktop模型数据字典 第7波-智能选区功能 第8波-快速可视化数据...波-接入AI人工智能NLP自然语言处理 第16波-N多使用场景的多维表转一维表 第17波-批量文件改名、下载、文件夹创建等 第18波-在Excel上也能玩上词云图 第19波-Excel与Sqlserver

    1K20

    PowerBI DAX 重构系列:用1个度量值代替100个 实现 动态多维度动态算法动态总计(下篇)

    DAX的BUG,如下: IF 函数在DAX中是一个亟待被优化的函数,由于IF可能返回文本或数字,请问这个度量值是什么类型呢,显然我们不要文本类型而是数字类型。...关于IF,值得总结的点如下: IF 是无法返回表的 IF 可能返回不同类型的数值时,可用希望返回的类型绕过BUG IF 和 SWITCH 本质一样,选项超过 2 个时使用SWITCH 至此,终于得到了完美的带总计排名...来反映某类项目与全局的一种关系。...没错,所以可以用这种方法来进行优化,但这里有个更深的细节需要注意,随着计算的年份不同,而如果不是产品类别维度,而是产品维度,可能有的产品由于下架,是没有销量的,因此不应该计入分母 n ,n 应该是只发生销售的那些项目...总结 《用1个度量值代替100个 实现 动态多维度动态算法动态总计》,分为了上下两篇。上篇重点描述了总计行与全部;下篇则重点描述如何实现全动态的度量值来提升可复用。

    2.7K21

    一次性学懂Excel中的Power Query和Power Pivot使用

    这两个组件分别对应强大的函数式语言:M语言和DAX语言。 这两个组件在Excel和Power BI中是通用的,正是这两个内置组件,使得Excel这个传统的分析工具越来越商务化,越来越智能化。...通过学习这本书,你可以: 获得1种技能:智能高效的数据分析技能 掌握2种核心知识:M函数和DAX函数 掌握2个分析工具:Excel和Power BI 内容简介 本书主要介绍Excel商务智能组件Power...全书共11章: 第1章介绍Excel中的Power Query和Power Pivot两大商务智能组件及其功能; 第2章至第6章介绍如何使用Power Query来获取数据并进行处理,主要包含Power...Query的基本操作、M函数和M公式的基础知识、常用的M函数,以及数据处理的综合案例; 第7章至第11章介绍如何使用Power Pivot进行数据建模和分析,主要包含Power Pivot的基本操作、...7.3.1 常用的DAX函数类型 7.3.2 DAX中的数据类型与运算符 7.3.3 创建DAX表达式时表和列的引用方式 第8章  Power Pivot和DAX基础知识 8.1 理解计算列与度量值

    9.3K20

    「PowerBI」分析服务多维数据结构重回关系数据库的一大绝招

    其他相关文章 第3波-与PowerbiDesktop互通互联 第5波-使用DAX查询从PowerbiDeskTop中获取数据源 第6波-导出PowerbiDesktop模型数据字典 背景介绍 在企业级的...只是一直等待着真正项目上的需要时可大招拳脚。...登录用户信息 见证奇迹的时候到了,完美使用了DAX查询,返回了数据结果到Sqlserver的当前会话上。...了解过Excel催化剂连接PowerBIDesktop的原理的朋友们,一定不陌生,PowerBIDesktop本质上在本地开启了SSAS服务,只是此服务需要带上一个变动的端口号才能访问正确当次打开的Pbix...至于如何交互式地生成动态DAX查询,这个就需要一些简单二次开发的过程,自动化永远是有代价的,有时为了一些自动化的效果,花上一些代价也是值得,欢迎有企业需求的可以对接笔者,一起造就双赢的美好局面。

    2.1K30
    领券