3 芋圆西米露

尚未进行身份认证

我要认证

情不自禁流下属于真正弱者的泪水/doge/doge/doge

等级
TA的排名 1w+

LeetCode LCP 25. 古董键盘(dp + 组合数)

【题目】古董键盘【思路】令表示前 个小写字母组合成字符串的前 个长度的可能情况数目。易得临界值为前 个小写字母组合长度为0的情况只有一种就是不选,假设第个字母的个数为个,那么可以得到前个字母组成个长度的字符串的可能情况数目:题目给定最多被按 次,因此我们得到状态转移方程:表示组合数从a个里面选b个,临界值为递推式为,比较好理解,因为如果可选择的范围增加一个数,这个数可以被选或者不被选。【代码】class So...

2020-09-25 19:32:04

LeetCode LCP 24. 数字游戏 (优先队列维护中位数)

【题目】数字游戏【思路】首先,我们知道,对于一个长度为n的数字序列nums,的最小代价,只会出现在这个数字序列的中位数(n为奇数)或者两个中位数(n为偶数)之间的位置。那么,我们就可以通过先把nums的每一项分别减去0,1,2,3...,转化成求的最小值问题。那么代价就是中位数右边的数字之和-中位数左边数字之和(即下面代码的sum2-sum1+中位数) 或者 右边中位数往右的数字和(包括中位数)-左边中位数往左的数字和(包括中位数)。【代码】class Solution...

2020-09-25 15:09:01

C++ STL 中的 sort() 函数底层实现原理

数据量大时采用快速排序 Quick Sort,分段递归排序。一旦分段后的数据量小于某个阈值,为避免Quick Sort的递归调用带来过大的额外开销,就改用插入排序 Insertion Sort。如果递归层次过深,还会改用堆排序 Heap Sort。八大排序:冒泡排序、插入排序、希尔排序、选择排序、堆排序、归并排序、快速排序、基数排序...

2020-08-07 12:05:53

剑指Offer 从尾到头打印链表(三种方法)

从尾到头打印链表题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。思路:1.顺序加入列表,反转列表2.反转链表再加入链表3.递归代码:// 1.反转列表/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* }

2020-08-07 11:51:07

剑指Offer 二维数组中的查找 + 替换空格

题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:有序查找,很容易想到二分,那么复杂度就是O(nlogm)或者O(mlogn),但是这样没有完全利用这个二维数组的性质。从左上角开始走,往右或者往下都是升序的,不好进行比较;如果从右上角开始走,往左是降序,往下是升序,我们可以利用这一点。做法:从右上角出发,如果当前位置的值<target,说明

2020-08-07 11:02:11

进程与线程的联系与区别

通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。由于线程比进程更小,基本上不拥有系统资源,所以对它的调度要付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系

2020-08-07 09:50:43

LeetCode 5. 最长回文子串(中心扩散法 or 动态规划 or 马拉车算法)

题目:给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。思路:1.中心扩散法:枚举每一个位置(两个位置)作为中心点的情况,向两边扩散,不断更新最大长度的答案。时间复杂度O(n^2),空间复杂度O(1)。2.动态规划:定义状态dp[i][j]为区间[i,j]的s的子串是否为回文。假如dp[i][j]是回文,且s[i-1]==s[j+1],那么dp[i-1][j+1]也是回文。在这个过程中不断更新最大长度的答案,最后输出这个最长的回文子串即可。时...

2020-07-22 16:00:37

GitHub进不去怎么办?修改下hosts文件即可

1.访问http://www.github.com.ipaddress.com/, 查看GitHub的IP地址并复制。2.在hosts文件中增加一行(注意前面的IP地址是你自己刚刚复制的内容)140.82.113.3 github.comwindows下hosts文件的路径为: C:\Windows\System32\drivers\etc\...

2020-07-16 15:19:41

网易2020校招笔试- 运维工程师(正式批)编程题 吃葡萄

思路:一看数据这么大有1e18肯定是思维题,再一看答案具有单调性直接二分答案。二分的check函数这么写:如果最多的葡萄都可以被吃完,那么最少和次少一人负责一款直接解决就好了;如果两个人都吃不完最多的葡萄,那么这个肯定有得剩吃不完;否则轮流按优先吃最多、然后次少、判断剩下的能不能被最后一个人吃完。二分时间复杂度是logn级别的,因此这种写法的时间复杂度最多是log(1e18)也就是64,相当于常数级别看作O(1)。另一种解法:思维当 a,b,c都差不多大 或者 其中两个比较大的时候,我们..

2020-07-15 22:59:08

计算机网络第七版谢希仁 - 第三章数据链路层 - 学习笔记

数据链路层使用的信道主要有以下两种类型:点对点信道。这种信道使用一对一的点对点通信方式。 广播信道。这种信道使用一对多的广播通信方式,过程比较复杂。本章最重要的内容数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点。 数据链路层的三个基本问题:封装成帧、透明传输和差错检测。 以太网MAC层的硬件地址。 适配器、转发...

2020-05-08 15:11:50

计算机网络第七版谢希仁 - 第二章物理层 - 学习笔记

本章最重要的内容物理层的任务 几种常用的信道复用技术 几种常用的宽带接入技术主要是ADSL和FTTx2.1 物理层的基本概念物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。可以将物理层的主要任务描述为确定与传输媒体的接口有关的一些特性,即:机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置等。平时...

2020-04-14 20:16:12

计算机网络第七版谢希仁 - 第一章概述 - 学习笔记

目录本章重点内容(1)互联网边缘部分和核心部分的作用,其中包含分组交换的概念。(2)计算机网络的性能指标。(3)计算机网络分层次的体系结构,包含协议和服务的概念。建议:抽象的概念一下子难以掌握,但是对后面的内容有着指导作用,因此最好时常回顾本章中的基本概念,有利于掌握好整个计算机网络的概念。1.1 计算机网络在信息时代中的作用首先我们来讨论一下计算机网络在信...

2020-04-10 22:32:59

操作系统 第一章引论 学习笔记

目录1.1 计算机系统组成1.2 操作系统的作用和定义1.3 操作系统的发展过程1.4 操作系统的分类1.5 操作系统的功能和特性1.6 操作系统的结构模型1.1 计算机系统组成计算机系统包括硬件系统和软件系统两部分,操作系统是配置在计算机硬件上的第一层软件,可以扩充硬件功能,提供软件运行环境,实现了应用软件和硬件设备的连接。硬件系统是指计算机的物理设备本身,如...

2020-04-09 20:52:41

前端「HTML+CSS」零基础入门学习笔记(完整)

课程前导一般来说,所有与视觉和交互有关的工作都由前端工程师来完成,后端工程师主要负责研究如何更好地把数据传给前端。首先要掌握前端三大基础语言:HTML CSS JavaScript ,其次要学习:jQuery 网络 CSS3 H5 es6 webpack4.0 git 小程序 设计模式 VUE VUEX VUE源码 React Node.js Mongo DB数据库等等。H...

2020-02-16 23:26:14

2020牛客寒假算法基础集训营1 题解

目录【A-honoka和格点三角形】【B-kotori和bangdream】【C-umi和弓道】【D-hanayo和米饭】【E-rin和快速迭代】【F-maki和tree】【G-eli和字符串】【H-nozomi和字符串】【I-nico和niconiconi】【J-u's的影响力】【A-honoka和格点三角形】呕,花我时间最多的一道题,因为一...

2020-02-04 18:00:19

2020 CCPC Wannafly Winter Camp 1 重现赛 H 最大公约数(思维)

【题目】【题解】对于给定的范围[1,n]内的k,要求我们判断是否正确,并输出最小的判断数字。首先我们根据样例来递推一下思路是否正确:Input :10 1 Output:210假如k是正确的,那么gcd(k,k)=k;所以假如不正确,我们只需要考虑i在[1,n]范围内gcd(i,k)==k的数字。对于1来说,有2,3,4,5,6,7,8,9,10这几个数字gc...

2020-02-03 15:17:51

AtCoder Contest 153 E - Crested Ibis vs Monster(完全背包)

【题目】E - Crested Ibis vs Monster【题解】将题目转化成选取一些物体,使得价值总和不小于h的所选物体的最小体积和这样一个完全背包问题,每个物体可以选择多次。临界值为什么可以是2e4呢?因为我们考虑最坏的情况,就是当h=1e4时,选择很划算的价值x为999的物品*2。临界值为什么不可以是h+h呢?因为考虑h很小而性价比最高的物体价值很大的情况,比...

2020-01-27 00:06:46

求两直线的交点(C++)

假设两直线的式子分别为:求解过程:综上所述,交点的解为:则有解,否则两直线平行。补充:如果化成Y=kX+b的形式的话,得解为:例题:Audio给定三个不共线的点,要求输出一个点使得这个点到三个点的距离相同,输出保留三位小数。#include<bits/stdc++.h>using namespac...

2020-01-19 10:09:25

2019前端「HTML+CSS」零基础入门之 CSS学习笔记

目录2019前端「HTML+CSS」零基础入门 2019前端「HTML+CSS」零基础入门之 HTML学习笔记课时4css初级篇-css引入css基础选择器选择器权重课时5css复杂选择器,权重计算问题,css基础属性课时6css企业开发经验、习惯,盒子模型,层模型课后练习2019前端「HTML+CSS」零基础入门浏览器 = ...

2020-01-15 19:07:48

2019前端「HTML+CSS」零基础入门之 HTML学习笔记

目录2019前端「HTML+CSS」零基础入门课时1 课程向导课时2 html 初级篇 - 基础标签课时3 html 进阶篇 - 高级标签2019前端「HTML+CSS」零基础入门之 CSS学习笔记2019前端「HTML+CSS」零基础入门课时1 课程向导前端三大基础语言:HTML CSS JavaScript其次要学习:jQuery 网络 CSS3 H5 ...

2019-12-30 17:28:15

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。