LeetCode题解 13.罗马数字转整数
13.罗马数字转整数
解题思路:
1.首先 既然是罗马转阿拉伯数字 那就是接受参数无外乎是字符串的 ‘I’,’V’,’X’,’L’,’C’,’D’,’M’
2.然后将接受的字符串 转换成 字符数组
3.接下来很自然的用到 switch() ,将罗马数字按照依次判断,然后将对应的阿拉伯数组 放在对应整形数组中
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。
4.IV是表示4 , 相当于 V 减去 前面的 I,这样就可以转换阿拉伯数字后,按照这样运算就能求出正确结果,只需要判断 if(num[n] < num[n+1]) 如果成立,则需要减去 num[n] 的数,如果不成立则需要把 num[n] 加进sum
5.最后再累加整形数组中的最后一位元素,返回sum
1234567891011121314151617181920212223242526272829303132333435class S ...
LeetCode题解 35.搜索插入位置
35. 搜索插入位置
解题思路:
1.函数传入 2个参数 ,一个是vector容器以引用传递 , 一个是target目标值
2.用for循环遍历容器 去判断当前循环的nums[i] 是否 == target ,成立则返回其索引,反之则判断 target < nums[i] 如成立则 插入到 nums.begin{} + i 处的索引,并返回索引数值
3.循环外是末尾添加的情况 ,在nums数组末尾添加target,并返回最后数组的下标
123456789101112131415161718class Solution {public: int searchInsert(vector<int> &nums, int target) { for (int i = 0 ; i < nums.size() ; ++i) { if (nums[i] == target) { ...
自我约束
公约
每日任务:
每日一题:每天至少完成一道数据结构或算法题。可以从LeetCode、HackerRank、CodeSignal等平台选择题目。
学习笔记:完成题目后,写一篇简短的学习笔记,记录解题思路、遇到的困难及解决方法。
长期任务:
每月总结:每月末总结本月完成的题目,分析进步和需要改进的地方。
专项突破:每月选择一个数据结构或算法专题(如排序算法、图算法、动态规划等)进行深入学习,并至少完成相关的10道题目。
惩罚机制
每日惩罚:若未完成每日任务,逐次减少1小时娱乐时间,如达到2次以上失去所有娱乐时间,将任务完成即恢复。
每周惩罚:若未完成一周目标,周末取消一次休闲活动
Habitica
需要搭配 Habitica使用 ,设定自定义的任务
工具
地址
Habitica
https://habitica.com/
浏览器原理之“渲染原理”
浏览器渣染原理html字符串->煊染->像素信息
面试题:浏览器是如何染页面的?渣染流水线1234567当浏览器的网络线程收到HTML文档后,会产生一个染任务,并将其传递给染主线程的消息队列。在事件循环机制的作用下,染主线程取出消息队列中的染任务,开启染流程。整个渣染流程分为多个阶段,分别是:HTML解析、样式计算、布局、分层、绘制、分块、光栅化、画每个阶段都有明确的输入输出,上一个阶段的输出会成为下一个阶段的输入。这样,整个染流程就形成了一套组织严密的生产流水线。
1解析1234渣染的第一步是解析Html.解析过程中遇到CSS解析CSS,遇到JS执行JS。为了提高解析效率,浏览器在开始解析前,会启动一个预解析的线程,率先下载HTML中的外部CSS文件和外部的JS文件。
解析遇到CSS怎么办1如果主线程解析到Link位置,此时外部的Css文件还没有下载解析好,主线程不会等待,继续解析后续的HTML。这是因为下载和解析CSS的工作是在预解析线程中进行的。这就是CSS不会阻塞HTML解析的根本原因。
解析遇到Script怎么办123如果主线程解析到script位置, ...
浏览器原理之“事件循环”
事件循环浏览器的进程模型何为进程?程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程
每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。
何为线程?一个进程至少有一个线程,新以在进程开启后会自动创建一个线程来运行代码,该线程称之为主线程。
如果程序需要同时执行多块代码,主线程就会启动更多的线程来执行代码,所以一个进程中可以包含多个线程。
浏览器有哪些进程和线程?*浏览器是一个多进程多线程的应用程序*
浏览器内部工作极其复杂。
为了避免相互影响,为了减少连环崩溃的几率,当启动浏览器后,它会自动启动多个进程。
123456789浏览器进程主要负责界面显示、用户交互、子进程管理等。浏览器进程内部会启动多个线程处理不同的任务。网络进程负责加载网络资源。网络进程内部会启动多个线程来处理不同的网络任务。渲染进程染进程启动后,会开启一个染主线程,主线程负责执行HTML、CSS、JS代码。默认情况下,浏览器会为每个标签页开启一个新的染进程,以保证不同的标签页之间不相互影响。
染主线程是浏览器中最繁忙的线程,需要它处理的任务包括但不限于:
1234567 ...
你好啊! 世界
我会在这里记录:
我的成长心路历程
修习心得
科学技术与编程
数据结构与算法
音频系统构建与处理
资源分享
定期更新,分享新的见解和发现.
以下是 HEXO的 默认 文档文章信息模板12345678910111213---title: date: 2022-05-9 02:33:22tags: - categories: - description:top_img:cover: /Src/default_cover:---
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post&qu ...