ZUI

【LeetCode】 130 最长不含重复字符的子字符串

早过忘川 提交于 2021-02-14 17:04:49
题目: 解题思路: https://leetcode-cn.com/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof/solution/mian-shi-ti-48-zui-chang-bu-han-zhong-fu-zi-fu-d-9/ 代码: import java.util.HashMap; import java.util.Map; public class LC146 { public int lengthOfLongestSubstring(String s) { Map<Character, Integer> dic = new HashMap<>(); int res = 0, tmp = 0; for(int j = 0; j < s.length(); j++) { int i = dic.getOrDefault(s.charAt(j), -1); // 获取索引 i dic.put(s.charAt(j), j); // 更新哈希表 tmp = tmp < j - i ? tmp + 1 : j - i; // dp[j - 1] -> dp[j] res = Math.max(res, tmp); // max(dp[j - 1], dp[j]) } return res; }

比印钞机更赚钱:ASML光刻机

我的未来我决定 提交于 2021-02-13 15:12:35
毕业之后,被问到最多的问题是“在哪上班啊?”。问题只有五个字,但实在很难回答清楚。本着即使你随口问,我也要好好答的态度,作此文。 我在一家叫ASML的公司上班。和大多数科技公司一样,名字说明不了任何问题。 ASML是做什么的? 生产&销售:光-刻-机! 如果世界上有什么东西比印钞机更赚钱,那一定是这货。因为它可以印一种叫集成电路的东西。集成电路?嗯,俗称芯片,主要负责数据的运算和存储,是电子产品的核心部件。 当你的男朋友为新买的笔记本应该配备 i5还是i7处理器、4g还是8g内存而陷入深度纠结的时候,不要惊讶,因为芯片真的很重要。是的,是的,甚至比笔记本的颜色更重要。 目前,世界上主要有两家公司生产光刻机。除了ASML,另一家叫尼康(Nikon)。没错,就是那家生产单反相机的公司。尼康大约占有全球光刻机市场份额的20%,而ASML占超过70%。 ASML有三大客户: 三星(samsung),英特尔(intel)和台积电(TSMC)。 等等,好像少了谁!既然三星是ASML客户,为什么苹果不是?答案很简单,因为苹果特别懒。他们自己不生产硬件,而是找别人帮忙。举个栗子,iPhone6和6 plus的A8芯片是台积电代工的,而下一代iPhone的芯片将由三星代工。 ASML存在的意义? 摩尔定律! 赚钱当然很(zui)重要,但是作为一家有情怀的公司,ASML存在有更重要的意义

【51CTO学员故事】6年拿下8个软考证书

橙三吉。 提交于 2021-01-19 11:09:24
点击领取>>>软考 16本 电子版官方教材 & 36本 辅导教材 + 27套 官方真题冲刺卷 + 21套 必考知识点6G资料包 前段时间软考出成绩了,51CTO学院的优秀学员根据自己的多年经验写了一篇6年软考经验总结分享。感谢这位学员的分享,现在我分享给大家!下面是正文。 6年软考经验总结分享 先上图: 总结一下,从2015年到2020年,本人软考共取5高3中,虽不能跟大神比,勉强算是“以考促学,略有小成”吧。其实收获来源于学习备考过程本身:系统化地学到了很多的知识,极大地锻炼了写作和书面表达能力,还认识了同在软考路上的众多小伙伴们…… 本人可能今后很长一段时间不再参加软考,在此分享些浅薄的经验,希望能帮到仍在备考的同学们,也算是对自己6年软考岁月的简单纪念。 一.心态调整 软考是职业资格考试,不是高考那种选拔性考试,所以要相信自己只要学习练习到位了,就一定能通过。而且考试就是在规定时间规定地点做题写文章而已,能过自然好,过不了也学到了知识,提升了能力,一句话:走上了备考路,就已经是胜利者。 二.上午题准备 上午选择题很简单,有约30%是粗浅的计算机和软件常识,即便不复习也能凭经验和感觉答对大半。但这些题的涉及面特别广,刻意去准备反而无从下手,因此上午题备考的重点还是应该放在专业知识上。 考纲上,一般上午题的出题范围zui大,案例题次之,论文题最小

LeetCode | 209. 长度最小的子数组

风流意气都作罢 提交于 2020-12-28 02:58:54
题目描述 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。 进阶: 如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。   思路分析 这里采用双指针+滑动窗口的方法。那么什么是滑动窗口呢? 如图,以 s = 7, nums = [2,3,1,2,4,3] 为例,要实现滑动窗口,得有两个指针,头指针 start 指向子数组的第一个元素,尾指针 end 指向子数组最后一个元素。 一开始时,start与end都指向子数组的第一个元素。 当end后移一位,我们就可以求得第一个元素和第二个元素的和。 通过end后移,我们可以累加求得子数组元素的和,当和大于等于给定输入阈值s时,end指针不再后移,就比如图中停止求和的条件就是 2+3+1+2 > 7 。此时我们还要判断这个子数组的长度是不是所有子数组长度中最小的那个,子数组长度可以通过指针的位置来求得,为 end-start+1 。最后题目要求返回的子数组长度,就是滑动窗口的大小。 滑动窗口的关键在接下来的步骤中,当我们结束上面这次循环之后应该做什么

HTML5移动应用开发入门经典 中文pdf扫描版

时光毁灭记忆、已成空白 提交于 2020-12-06 03:14:45
HTML5是关注度ZUI高的前沿Web技术,而移动互联网则是近两年ZUI炙手可热的Web领域。《HTML5移动应用开发入门经典》将这两者巧妙结合起来,详细讲解了如何利用HTML5进行移动应用开发。 HTML5移动应用开发入门经典总共分为24章,以示例的方式对如何使用HTML5及相关技术进行移动应用开发做了全面而细致的介绍。本书首先讲解了HTML5的起源以及它为什么适用于移动设备,然后讲解了HTML5的基本元素以及所做的改进、canvas(画布)、视音频、微格式、微数据、拖曳等新增特性,还讲解了WebSocket、Web Workers、Web存储、离线Web应用程序、地理定位等新增的API。同时,《HTML5移动应用开发入门经典》还针对不同平台(如iOS、BlackBerry、Android)的移动设备、不同的浏览器,就如何开发高可用性的移动应用程序进行了讲解。 HTML5移动应用开发入门经典内容组织合理,示例丰富,操作步骤简洁明了,FEI常适合对移动应用开发感兴趣的读者阅读。对于有一定移动应用开发经验的读者,本书也具有很大的参考价值。 HTML5移动应用开发入门经典目录: 第1章 使用HTML5改进移动Web应用的开发 1 第2章 移动开发中新的HTML5标签和属性 11 第3章 用CSS3设计移动页面样式 25 第4章 移动设备检测及对HTML5的支持 37 第5章

剑指 Offer 68

☆樱花仙子☆ 提交于 2020-10-28 03:50:17
点击专辑上方“蓝字”关注我吧 题目难度: 简单 原题链接 [1] 今天继续更新剑指 offer 系列, 老样子 晚上 6 点 45 分 准时更新公众号 每日精选算法题 , 大家记得关注哦~ 另外在公众号里回复 offer 就能看到剑指 offer 系列当前连载的所有文章了 本篇是剑指 offer 系列的最后一篇了, 之后我会做一个总结, 对之前的文章进行归类汇总, 希望这个系列对大家能有所帮助, 也欢迎大家多多分享和转发, 谢谢支持~ 😘 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4] 二叉树 说明: 所有节点的值都是唯一的。 p、q 为不同节点且均存在于给定的二叉树中。 题目样例 示例 示例 1: 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 输出: 3 解释: 节点 5 和节点 1 的最近公共祖先是节点 3。 示例 2: 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p =

涡街流量计使用注意事项

十年热恋 提交于 2020-10-18 13:54:30
传感用具备精度高,反复性好,寿命长操作简朴等特征。可普遍运用于石油,化工,冶金,造纸等行业测量液体的体积刹时流量和体积总量。上面技巧小编提示宽广用户在涡轮流量计运用中应当注意以下几点事项: 1:变送器的电源线采取金属屏蔽线,接地要良好牢靠。电源为直流24V,650Ω阻抗。 2:变送器应程度装置,防止垂直装置,并保障其前后有适应的直管段,个别前10D,后5D。 3:保障流体的活动方向与仪表外壳的箭头方向一致,不得装反。 4:被测介质对涡轮不能有侵蚀,非但凡轴承处,否则应采取办法。 5:注意对磁感应局部不能碰撞。 6、 仪表装置采取法兰衔接、螺纹衔接及夹装式; 7、 装置时液体活动方向应与传感器外壳上指导流向的箭头方向一致,且上游直管段应≥10DN,上游直管段应≥5DN(DN为管道内径)。 8、传感器应远离外界磁场,如不能防止, 重庆涡街流量计 应采取必要的办法; 9、为了检修时不至影响液体的正常保送,应在传感器两端的直管段外装置旁通管道; 10、传感器露天装置时,请做好缩小器插头的防水解决; 11、传感器与显示仪表的接线,应依据缩小器的电源来抉择接线方法,详见有关“运用解释” 同时提示用户要活期保护和颐养以保障涡轮流量计的正常、正确的运行。 1、假如是新买的液体涡轮流量计(半年内)、清除流量计自身故障的话,倡议检讨一下四周有没有强磁场, 重庆智能流量计 流体能否稳固

力扣-122. 买卖股票的最佳时机 II

流过昼夜 提交于 2020-09-29 16:57:13
0. 题目 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。 示例 2: 输入: [1,2,3,4,5] 输出: 4 解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。 因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。 示例 3: 输入: [7,6,4,3,1] 输出: 0 解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。 提示: 1 <= prices.length <= 3 * 10 ^ 4 0 <= prices[i] <= 10 ^ 4 1.我的思路  

面试题17:打印从1到最大的n位数(C++)

早过忘川 提交于 2020-08-18 17:41:31
题目地址: https://leetcode-cn.com/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof/ 题目描述 输入数字 n ,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 题目示例 示例 1: 输入: n = 1 输出: [1,2,3,4,5,6,7,8,9] 解题思路 数学法(求解小数): 利用pow函数打印输出 字符串方法(求解大数): 使用string方法解决大数 程序源码 数学法 class Solution { public : vector < int > printNumbers( int n) { vector < int > res; if (n == 0 ) return res; for ( int i = 1 , num = pow( 10 , n); i < num; i++ ) { res.push_back(i); } return res; } }; 字符串方法 class Solution { public : vector < int > printNumbers( int n) { vector < int > res; if (n == 0 ) return res; string str; for ( int

C++ 将汉字转换成拼音全拼

北城以北 提交于 2020-08-17 14:17:53
#include < string > using std:: string ; // ================================================================== /* * 功能: 将汉字转换成拼音全拼,例如将“马兆瑞”转换成“mazhaorui”。(“妈ma521”可转换成“mama521”) @param[in] Chinese:要转换的汉字字符 @param[out] PinYin:转换后的拼音字符 @par修改记录: * */ // ================================================================== void GetPinYin(unsigned char * Chinese, string & PinYin); void main() { unsigned char chinese[] = " 马兆瑞 " ; string pinyin; GetPinYin(chinese, pinyin); int dsa = 1 ; } string pinyin[] = { " a " , " ai " , " an " , " ang " , " ao " , " ba " , " bai " , " ban " , " bang " , " bao " ,