Category: 学习笔记
前不久,力扣说我刷题刷了2000天,不是连续的,这个是一共刷的天数。2000天也就是5.479年。 我的力扣,欢迎围观:https://leetcode.com/u/justyy/ 注册力扣帐号是2013年10月10号,当天提交了6次。当时是在谢菲尔得/Sheffield。 后来就是断断续续,甚至有很长一段时间都没有刷,直到2019年3月2日开始才未间断刷到今天(当时拿着Ipad中午在美国通用电气的食堂里刷题)。2016年竟然4月份连续刷了25天,我已经忘记当时为啥这么有闲情逸致了。哦,当时已经搬到了剑桥/Fen Drayton了,可能在准备谷歌的面试。 019年在美国通用电气/General Electric工作的时候中午吃完饭在湖边着着IPAD刷题。 从2013年到2024的力扣刷题之路,一点点改变,一点点变好。 现在刷题是保持面试状态的好方法,就像飞机飞到高空时油耗已经减少,我希望自己能维持这个状态。每天打卡,哪怕有时只是拷贝代码,依然会稍微思考并熟悉解法和算法。每天坚持打卡还能积累积分,兑换力扣衬衫。 英文:Milestone: Leetcoding for 2000 Days 网友:以后每天比比看是cursor做得快 还是你快。 答:刷题的目的又不是比快。让脑子思考,训练脑子。 网友:惭愧,我在 GE时候天天打酱油,群主确是每天在刷题飞。 网友:看似不起波澜的日复一日让我们看到坚持的意义! 本文一共 475 个汉字, 你数一下对不对. 十年: 力扣刷题2000天. (AMP 移动加速版本) 赞赏我的几个理由. …
2024年11月17日
Javascript, Poloniex P站, 交易所 Crypto Exchanges, 加密货币, 区块链, 比特币 BTC, 程序设计, 算法, 编程, 计算机, 计算机, 软件工程
币圈的P站是Poloniex,前几年被孙宇晨收购了,它是一个交易所。我很久之前用过Poloniex,当时对其印象并不是很好。 不过,现在我对其好感增加,因为币安买下的coinmarketcap免费的接口就很多限制。 官方文档),这个接口的频率限制是一秒200次,很慷慨了。 https://api.poloniex.com/markets/price 能返回所有交易配对,比如这样的: 这个JSON返回的结构是一个数组,每个元素是个结构体,也就是一个币价的具体配对信息,我们可以看成是一条边Edge两个顶点Vertice,这样就是一个图结构(带权图 Weighted Graph,权值就是兑换价格),虽然给的是单边,但其实是个双向的,比如USD_BTC得值可以反过来推得BTC到USD的价格。我们可以设计一个算法,从币价A到币价B,可以通过BFS广度优先搜索算法来获取价格。比如有配对A_B、B_C、C_D我们就可以获得A_D的值。 深度优先搜索算法DFS也可以,不过这个算法会返回找到的第一条路径,并不能保证是最短的,最短的确实是最准确的,因为链也长,转换精度就会下降。 当然,可能存在多条路径,最理想的状态是把这些路径都求出来,取个平均啥的,不过这样就得暴力搜索所有的路径了,算法时间复杂度就会比较高。 以下是BFS广度优先算法的代码,Javascript的,可以用于网页前端或者NodeJs后端,甚至是CloudFlare Serverless Worker或者是其它无服务框架:Azure Function、AWS Lambda等。 const fetch = require('node-fetch'); async function getTicker(a, b) { try { const response = …
在系统设计面试中,可用性百分比是软件工程师应该熟悉的基本知识。 在系统可靠性领域(System Availability),99.9% 或 99.99% 之类的可用性百分比是关键的基准。但是这些数字究竟意味着什么?它们又如何转化为实际停机时间(Downtime)?以下介绍了如何计算与不同可用性水平相关的停机时间,并使用示例来说明 99.9%、99.99% 和其他可用性目标所带来的预期。 什么是可用性百分比? 可用性百分比表示系统在给定时间段(通常是一年、一月或一天)内预计正常运行的时间比例。例如,99.9% 的可用性意味着系统在指定期间内可以停机 0.1% 的时间。 可用性百分比和停机时间 以下是根据不同时间段的可用性百分比计算停机时间的方法: 确定总时间周期:选择参考周期: 年:365 天,或 31,536,000 秒(365 天 × 24 小时 × 60 分钟 × 60 …
在 C++ 中,std::future 和 std::async 是 C++11 标准 并发库的一部分。它们允许您异步/Asynchronous运行任务并在稍后获取结果,非常适合编写非阻塞代码和并行化计算。以下是它们的工作原理和典型用法。 C++ std::async std::async 是一个高级函数,允许您异步启动一个任务(一个可调用对象,如函数或 lambda)。您指定要运行的函数,std::async 返回一个表示该 函数结果的 std::future。您可以稍后获取该结果,无论是任务完成时还是您需要时。 #include <iostream> #include <future> #include <chrono> int compute() { std::this_thread::sleep_for(std::chrono::seconds(2)); // 模拟工作 …
要使用 dd 命令测试磁盘速度,可以写入一个临时文件并测量写入和读取速度。以下是一些示例: 测试写入速度 此命令将 1GB 文件写入磁盘,并提供写入速度: dd if=/dev/zero of=testfile bs=1G count=1 oflag=dsync if=/dev/zero 使用空字节源。 of=testfile 指定输出文件。 bs=1G 设置块大小为 1 GB。 count=1 指定只写入一个块。 oflag=dsync 确保数据实际写入磁盘,从而提供更准确的速度测量。 示例输出: 1+0 records in …
一年一度的万圣节要到了,正好这天在Linkedin上看到Mathworks发的帖子,用Matlab画一个南瓜,很是有趣。 % Pumpkin =sphere(200); R=1-(1-mod(0:.1:20,2)).^2/12; x=R.*X; y=R.*Y; z=Z.*R; c=hypot(hypot(x,y),z)+randn(201)*.03; surf(x,y,(.8+(0-(1:-.01:-1)'.^4)*.3).*z,c, 'FaceColor', 'interp', 'EdgeColor', 'none') % Stem s = .* ,1,10) .1 ]'; = meshgrid(0:pi/15:pi/2,0:pi/20:pi); Xs = -(.4-cos(p).*s).*cos(t)+.4; Zs = …
在Windows Subsystem for Linux (WSL)设置中,“启用调试控制台”选项允许您直接从WSL环境访问详细的调试信息。此功能有助于排查WSL进程的问题,提供对系统调用、内核交互和性能瓶颈的洞察。尤其当您的WSL环境无法启动时,它在调试中非常有用。 WSL Debug Console 在WSL中启用调试控制台 要在WSL中启用调试控制台,请按照以下步骤操作: 使用管理员权限打开PowerShell或Windows Terminal。 运行以下命令: wsl --update 以确保您拥有最新的WSL版本。 通过更新WSL配置文件来启用调试控制台: 打开位于WSL发行版中的/etc/wsl.conf文件。 添加以下配置: debugConsole=true 保存文件并重启WSL: wsl --shutdown wsl 启用后,调试控制台可以提供详细的日志和系统诊断信息,帮助解决问题或优化您的WSL环境。 另一种启用WSL调试控制台的方法是通过Windows Subsystem for Linux设置的图形用户界面(GUI)。以下是操作步骤: …