自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zy2317878的博客

博观约取,厚积薄发。多读书,多看报,多做事,多交流。

  • 博客(63)
  • 收藏
  • 关注

原创 LeetCode-367. Valid Perfect Square

DescriptionNoteExample 1Example 2Solution 1(C++)class Solution {public: bool isPerfectSquare(int num) { long sum=0, i=1; while(sum < num){

2018-01-31 19:07:54 177

原创 LeetCode-263. Ugly Number

DescriptionSolution 1(C++)class Solution {public: bool isUgly(int num) { if(num &lt;= 9) return num==0 || num==7 || num &lt; 0? false: true; if(num %2 == 0) return isUgl...

2018-01-31 15:22:19 197

原创 LeetCode-326. Power of Three

DescriptionFollow UpSolution 1(C++)class Solution {public: bool isPowerOfThree(int n) { if(n&lt;3) return n==1? true: false; else return 3*(n/3) == n? isPowerOfThr...

2018-01-30 15:45:39 256

原创 LeetCode-231. Power of Two

DescriptionSolution 1(C++)class Solution {public: bool isPowerOfTwo(int n) { if(n0) return false; return !(n&(n-1)); }};算法分析吃了英语没看懂的亏,其实这道题就是问给了一个数,来判断这个数是不是2的幂

2018-01-30 14:06:28 230

原创 LeetCode-415. Add String

DescriptionNoteSolution 1(C++)class Solution {public: string addStrings(string num1, string num2) { int sum = 0, i = num1.length() - 1, j = num2.length() - 1; string

2018-01-29 17:21:30 200

原创 LeetCode-13. Roman to Integer

DescriptionSolution 1(C++)class Solution {public: int romanToInt(string s) { unordered_mapchar, int> index { {'I', 1}, {'V', 5}, {'X', 10}, {'L',50},

2018-01-29 14:56:29 118

原创 LeetCode-453. Minimum Moves to Equal Array Elements

DescriptionExampleSolution 1(C++)class Solution {public: int minMoves(vectorint>& nums) { int minnums=INT_MAX; int res=0; for(auto n: nums){ minn

2018-01-29 13:49:44 197

原创 LeetCode-171. Excel Sheet Column Number

DescriptionExampleSolution 1(C++)class Solution {public: int titleToNumber(string s) { int sum=0, len=s.size()-1; for(int i=0; i<= len; i++){ sum+= (s[

2018-01-28 16:58:17 168

原创 LeetCode-598. Range Addition II

DescriptionExampleNoteSolution 1(C++)class Solution {public: int maxCount(int m, int n, vectorvectorint>>& ops) { int minrow=INT_MAX, mincol=INT_MAX; minrow=mi

2018-01-28 16:07:09 166

原创 LeetCode-258. Add Digits

DescriptionExampleFollow UpSolution 1(C++)class Solution {public: int addDigits(int num) { int sum=11; while(sum/10 != 0){ sum=0; whi

2018-01-26 22:33:26 191

原创 LeetCode-728. Self Dividing Numbers

DescriptionExample 1NoteSolution 1(C++)class Solution {public: vectorint> selfDividingNumbers(int left, int right) { vectorint> res; for(int i=left;i <= righ

2018-01-26 13:39:24 225

原创 C++——std::List

写在前面这一篇博客系统学习一下C++中List类的相关函数。之所以要学习这个类,是由于LeetCode中做到了Linked List类,虽然在LeetCode中并没有使用到List类的相关函数,而是主要利用链表的数据结构来完成一些内容,或者说,就是从基础的数据结构来实现接下来要学习的一些链表类的函数,比如:插入,删除结点等等。这篇博客的风格内容与之前博客并无两异,所以主要目的还是对List类的...

2018-01-25 17:32:59 5464 1

原创 操作系统学习-19.离散分配方式

写在前面连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。如果允许将一个进程直接分散地装入到许多不相邻接的分区中,则无须再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式;如果离散分配的基本单位是段,则称为分段存储管理方式。在分页存储管理方式中,如果不具备页面对换功能,则称为基本的分...

2018-01-24 19:27:56 4557

原创 LeetCode-160. Intersection of Two Linked Lists

DescriptionExampleNoteSolution/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}

2018-01-23 21:33:43 152

原创 LeetCode-203. Remove Linked List Elements

DescriptionExampleSolution 1(C++)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} *

2018-01-23 18:06:56 160

原创 操作系统学习-18. 可重定位分区分配与对换

写在前面这一篇博客与前一篇博客内容连续,这一篇博客主要讨论可重定位分区分配与进程对换的相关知识,也是以理解概念为主要任务。多看几遍,就能搞懂。动态重定位的引入在连续分配方式中,必须把一个系统或用户程序装入一连续的内存空间。如果在系统中只有若干个小的分区,即使它们容量的总和大于要装入的程序,但由于这些分区不相邻接,也无法把该程序装入内存。图1. 紧凑的示意 若想把作业装入,

2018-01-23 10:37:01 4976

原创 LeetCode-234. Palindrome Linked List

DescriptionFollow UpSolution 1(C++)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}

2018-01-22 19:54:15 253

原创 LeetCode-141. Linked List Cycle

DescriptionFollow UpSolution 1(C++)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} *

2018-01-22 10:47:23 213

原创 LeetCode-21. Merge Two Sorted Lists

DescriptionExampleSolution 1(C++)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} *...

2018-01-21 20:03:28 226

原创 LeetCode-83. Remove Duplicates from Sorted List

DescriptionExampleSolution 1(C++)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }

2018-01-21 13:44:50 128

原创 操作系统学习-17. 内存的连续分配方式

写在前面连续分配方式,是指为一个用户程序分配一个连续的内存空间。又可把连续分配方式进一步分为单一连续分配、固定分区分配、动态分区分配以及动态重定位分区分配四种方式。单一连续分配这是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。采用这种存储管理方式时,可把内存分为系统区和用户区两部分,系统区仅提供给 OS 使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部

2018-01-20 21:38:25 1597

原创 LeetCodeBug-member access within null pointer of type 'struct ListNode'

写在前面这个BUG是我在做LeetCode的链表一类题目的时候遇到的,觉得还是蛮有代表性的,因为刚开始遇到这个BUG,我完全不知道哪里有问题,还与正确答案反复对比,结果发现完全一样,但我的就报错,后来发现原来是这个知识点完全没有接触过,所以就通过这篇博客来记录一下自己犯得错误,来提醒自己。错误提示错误原因详细错误原因可以参考: LeetCode-206. Reverse

2018-01-20 17:20:02 27745 1

原创 LeetCode-206. Reverse Linked List

DescriptionSolution 1(C++)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class

2018-01-20 17:18:55 2666

原创 LeetCode-237. Delete Node in a Linked List

DescriptionSolution 1(C++)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class S

2018-01-20 10:09:48 205

原创 操作系统学习-16 存储器与程序的装入与链接

写在前面目前为止,我开始进入新的一章的学习——存储器管理的学习了。不知不觉已经学了进程管理与处理机管理这些知识了,回过头看看感觉自己的博客总结的还是不错的,但是呢,总结不错的也要重新温习一遍才能掌握这些最基础的知识。目前还是保持学习节奏,尽量在年前完成操作系统基本知识的学习,并将博客复习一遍。说回来,这篇博客将首先整理一下存储器的基础知识,然后学习程序的装入与链接等知识。多级存储器结构

2018-01-19 22:06:39 678

原创 数据结构算法学习-2. 散列表查找(哈希表)

写在前面上一篇数据结构算法学习-1. 查找(Search)概论与三种顺序查找算法 之后还有线性索引查找与二分树查找,由于目前首先接触到了哈希表的题目,所以跳跃一下,首先来学习一下哈希表相关知识。哈希表概述之前的思路是要查找一个记录,都要将不同关键字对应的记录与要查找的记录做“比较”,如果比较之后,二者相同说明,查找到了所需记录结果,如果所有记录都不相同,说明查找失败。但哈希表的思路

2018-01-19 16:46:26 478

原创 数据结构算法学习-1. 查找(Search)概论与三种顺序查找算法

写在前面这个新的类别主要是将平时学的数据结构的知识概念与数据结构引发的各种算法进行一个整理总结。这一个类别参考的资料是《大话数据结构》。由于PDF是扫描版,所以主要内容都是手打,比较麻烦,会耗费一些时间。所以主要是要提纲挈领,将要点整理出来,以便在做题的时候,能将这些知识融会贯通一下。毕竟不能当个只会复制粘贴的码农,还是要花费时间与精力来提升一下自己的知识水平。 数据结构算法的学习我不会按照

2018-01-19 15:32:43 1451

原创 操作系统学习-15 银行家算法

写在前面最有代表性的避免死锁的算法,是 Dijkstra 的银行家算法。这是由于该算法能用于银行系统现金贷款的发放而得名的。为实现银行家算法,系统中必须设置若干数据结构。银行家算法中的数据结构四种数据结构中,i表示进程编号,j表示可利用资源编号。假定系统中有n个进程,m类可使用资源。(1) 可利用资源向量 Available。 这是一个含有 m 个元素的数组,其中的每一个元素

2018-01-18 19:37:47 988 1

原创 LeetCode-204. Count Primes

DescriptionSolution 1(C++)class Solution {public: int countPrimes(int n) { vectorbool> isprime(n, true); isprime[0] = false, isprime[1] = false; for (int i = 0;

2018-01-18 16:56:03 186

原创 LeetCode-290. Word Pattern

DescriptionExamplesNotesSolution 1(C++)class Solution {public: bool wordPattern(string pattern, string str) { vectorstring> strvec; size_t found=str.find(" "),

2018-01-18 16:45:37 151

原创 操作系统学习-14 预防死锁与死锁解除

写在前面如前所述,详情见:操作系统学习-13.死锁的原因与必要条件,预防死锁和避免死锁这两种方法实质上都是通过施加某些限制条件,来预防发生死锁。两者的主要差别在于:为预防死锁所施加的限制条件较严格,这往往会影响进程的并发执行;而为避免死锁所施加的限制条件则较宽松,这给进程的运行提供了较宽松的环境,有利于进程的并发执行。预防死锁预防死锁的方法是使四个必要条件中的第 2、3、4 个条件

2018-01-17 21:28:57 574

原创 操作系统学习-13.死锁的原因与必要条件

写在前面:在多道程序系统中,虽可借助于多个进程的并发执行来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险——死锁。死锁(Deadlock),是指多个进程在运行过程中因争夺资源而造成的一种僵局(DeadlyEmbrace)。在前面介绍把信号量作为同步工具时已提及到,若多个 wait 和 signal 操作顺序不当,会产生进程死锁,关于信号量的知识可参考: 操作系统学习-6. 信号量。

2018-01-17 15:05:15 807

原创 LeetCode-438. Find All Anagrams in a String

DescriptionExample 1Example 2Solution 1(C++)class Solution {public: vectorint> findAnagrams(string s, string p) { int plen=p.size(),slen=s.size(); vectorint>

2018-01-17 13:45:04 152

原创 LeetCode-205. Isomorphic Strings

DescriptionExampleNoteSolution 1(C++)class Solution {public: bool isIsomorphic(string s, string t) { if(s.size()!=t.size()){return false;} string models=model(

2018-01-16 16:04:27 145

原创 LeetCode-645. Set Mismatch

DescriptionExample 1NoteSolution 1(C++)class Solution {public: vectorint> findErrorNums(vectorint>& nums) { vectorint> res; for(auto n:nums){ nums[

2018-01-16 14:55:43 247

原创 LeetCode-350. Intersection of Two Arrays II

DescriptionExampleNoteFollow UpSolution 1(C++)class Solution {public: vectorint> intersect(vectorint>& nums1, vectorint>& nums2) { vectorint> res; unor

2018-01-15 22:37:09 124

原创 LeetCode-594. Longest Harmonious Subsequence

DescriptionExampleNoteSolution 1(C++)class Solution {public: int findLHS(vectorint>& nums) { mapint,int> cnt; int res=INT_MIN; for(auto n:nums){

2018-01-15 14:01:50 167

原创 LeetCode-202. Happy Number

DescriptionExampleSolution 1(C++)class Solution {public: bool isHappy(int n) { setint> temp; int sum=0; while(temp.count(n)==0){ temp.insert(n);

2018-01-15 11:24:02 170

原创 操作系统学习-12.实时调度

写在前面:这一部分学习一下实时调度算法的基本知识,这部分内容以记忆理解为主。实时调度主要用于对实时要求有特殊要求的系统中,在实时系统中都存在着若干个实时进程或任务,它们用来反应或控制某个(些)外部事件,往往带有某种程度的紧迫性,前面所介绍的多种调度算法并不能很好地满足实时系统对调度的要求,为此,需要引入一种新的调度,即实时调度。实时调度的基本条件实时调度必须能满足实时任务对截止时间的要

2018-01-14 20:05:17 2249

原创 C++——std::String

写在前面这一篇博客系统学习一下C++中String类的相关函数。这个类在之前做题的时候就经常遇到,其实说白了,它也就是一个vector &lt; char &gt;。但是,它又有一些独特的函数,可以在做题的时候简化代码,提高效率。所以在这一篇博客,就根据CPlusPlus官网中&lt; string &gt;中的内容做一个整理。 自己整理之外,还有一些优秀的整理资料可供参考:std::str...

2018-01-14 13:54:23 90394 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除