2 yyyyeahhhhhh

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 6w+

股票的最大利润

股票的最大利润题目描述:解题思路股票交易的利润来自股票买入和卖的价格差,当然,我们只能在股票买入了之后再将其卖出。如果把股票买入的价格和卖出的价格的两个数字组成一个数对,那么利润就是这个数对的值,最大的利润,就是这个数对的最大值这个题,当然可以利用暴力法来进行解决,也就是找出数组中所有的数对,并且逐一求出他们之间的差值,由于长度为n的数组中存在有n^2个数对,因此该算法的时间复杂度为n方,当然,也可以换另一种思路先定义一个函数为当卖出价为数组中第i个数字时可能获得的最大利润,显然,再卖出价固定

2020-07-08 14:13:09

Linux根目录下的内容

Linux根目录下的内容Linux下的根目录在Linux下的目录结构中,有一个最顶层的目录,到达这个目录之后,在进一步向上查找是不可以的,因为这一层目录已经是最顶层的目录了,这个目录就是Linux下的根目录。ls …/… 到达根目录ls /到达根目录那么,现在可以调研一下这个目录都代表着什么样的具体内容Linux根目录下的内容binbin是binary的缩写,是UNIX类操作系统中根目录的标准子目录,包含可执行的程序(即准备运行的程序),以便达到启动(即启动)和修复系统的最小功能。

2020-07-06 14:10:54

剪绳子

剪绳子题目描述:解题思路:思路一:贪心策略:代码如下所示:class Solution {public: int cuttingRope(int n) { if (n < 4) return n - 1; int a = n / 3, b = n % 3; if (b == 0)return a = pow(3, a); if (b == 1)return a = pow(3, a

2020-07-02 15:07:25

环的入口结点

环的入口结点题目描述:解题思路:代码如下所示:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *detectCycle(ListNode *head)

2020-07-01 20:08:31

Linux基础IO

Linux基础IO本节重点复习C文件IO相关操作认识文件相关系统调用接口认识文件描述符,理解重定向对比fd和FILE,理解系统调用和库函数的关系理解文件系统中inode的概念认识软硬链接,对比区别认识动态静态库,学会结合gcc选项,制作动静态库...

2020-07-01 16:27:34

环型链表

环型链表题目描述:给定一个链表,判断链表当中有没有环解体思路:思路一:可以利用快慢指针的思路,给定两个指针,让两个指针一开始都位于链表头部的位置,然后开始走起来,一个指针每次走一步,一个指针每次走2步,如果说链表是有环的话,那么走的快的链表,就会先进入到环里面,然后一直在环里面绕圈圈,慢的指针也会一步一步走到环的里面,如果有环的话,那么最终两个指针一定是会相遇的,那么就可以通过快慢指针去判断链表里面到底有没有环。代码如下所示:/** * Definition for singly

2020-06-30 19:59:42

不用加减乘除做加法

不用加减乘除做加法题目描述:解题思路:针对十进制(1)先理解一下10进制是如何做加法的。例如5+7=12,分为3步。(2)先不考虑进位值,5+7得到2,再计算进位值,个位上5+7的进位为1,所以进位为1*10=10 (要乘以10是因为个位上进一相当于加10).重复(1),(2),直到没有进位制产生,就结束了。例如本题就是再次计算2+10,不考虑进位为12,计算进位得到0,所以最终结果为22对于10进制,还是用到了加法和乘法运算。针对二进制对于2进制的计算也是一样的,由于二进制的特殊

2020-06-30 15:30:12

Linux进程控制

Linux进程控制本节重点学习进程创建,fork/vfork学习到进程等待学习到进程程序替换, 微型shell,重新认识shell运行原理学习到进程终止,认识$?

2020-06-28 15:59:15

进程状态,僵尸进程以及孤儿进程

进程状态,僵尸进程以及孤儿进程进程状态课本上的进程状态分为三种:就绪,阻塞,运行进程状态:一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程。进程状态即体现一个进程的生命状态。运行(running)态:进程占有处理器正在运行。就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行。等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。在Linux下的进程状态分为运行状态–R:正在运行或者只要拿到时

2020-06-28 10:06:00

Linux下查看进程的信息

Linux下查看进程的信息查看进程信息使用 ps -e,查看所有进程信息,但是不够详细使用ps -ef,查看所有的进程信息,会稍微详细一点,顺序依次为,UID—用户的信息,也就是说这个进程是谁的,PID—这个进程的ID,PPID—这个进程的父进程的ID,STIME—是从什么时候开始运行的,TIME—在CPU上已经运行多长时间了,CMD—在运行程序的时候执行的是什么命令常用命令总结ps -l 列出与本次登录有关的进程信息;ps -aux 查询内存中进程信息;ps -aux |

2020-06-28 09:41:02

创建进程以及对fork的认识

创建进程以及对fork的认识创建子进程一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。fork是用来创建一个子进程的pid_t fork(void)—通过复制调

2020-06-28 09:31:59

Memcpy,Memmove,Memcmp函数详解

为什么有了strcpy还要有memcpy因为strcpy是用来拷贝字符和字符串的,strcpy是按字节拷贝的,一个字节一个字节去拷贝,strcpy是不能用来拷贝其他类型的,所以应运而生了memcpymemcpy函数原型void *memcpy( void *dest, const void *src, size_t count );count为要拷贝的字节数,单位是字节使用memcpy#include<stdio.h>#include<string.h>int m

2020-06-24 11:24:46

数组中出现次数超过一半的数字

数组中出现次数超过一半的数字题目描述:解题思路:思路一:中位数原理现在的情况是,数组中有一个元素的出现次数超过了数组长度的一半,那么我们就可以想到了,如果把这个数组排序的话,那么排序之后的数组,位于数组中央的位置的那个元素一定是那个出现次数超过数组长度一半的元素,也就是说,这个数字是统计学上中位数,即长度为n的数组中第n/2大的元素,所以我们的想法就是先对数组中的元素进行排序,然后返回排好序的数组中第n/2位置上的元素就可以了,就找到了那个元素代码如下:class Solution {p

2020-06-23 14:31:46

两个链表的第一个公共结点

两个链表的第一个公共结点题目描述:解题思路:思路一:解决这个问题,可以分别把两个链表放在栈里面,这样两个链表的尾巴结点就可以很好得得到了,因为当把两个链表的结点入栈的时候,那么两个链表的尾结点就是当两个栈的栈顶元素,然后接下来只需要去比较两个栈的栈顶元素时候相同,如果两个栈的栈顶元素不相同的话,那么两个链表一定是不相交的,因为如果两个链表是相交的话,那么相交结点之后的所有结点都是相同的,所以相交的两个链表的尾结点一定是相同的。如果两个栈的栈顶元素是相同的的话,那么就需要向后去继续比较,知道不相

2020-06-18 20:08:02

反转字符串&&反转字符串中单词的序列

反转字符串题目描述解题思路:思路一:直接利用reverse方法逆置数组就可以了class Solution {public: void reverseString(vector<char>& s) { reverse(s.begin(),s.end()); }};思路二:利用交换的思路class Solution {public: void reverseString(vector<char>&

2020-06-18 14:36:21

函数调用约定

函数调用约定函数调用约定的概念函数调用约定,是指当一个函数被调用时,函数的参数会被传递给被调用的函数和返回值会被返回给调用函数。函数的调用约定就是描述参数是怎么传递和由谁平衡堆栈的,当然还有返回值。函数调用约定规定了执行过程中函数的调用者和被调用者之间如何传递参数以及如何恢复栈平衡在参数传递过程中,有二个问题必须得到明确说明:(1)当参数多于1个时,按照什么顺序把参数入栈(2)函数调用后 ,由谁把栈恢复原貌.函数调用约定 _cdeclcdecl调用约定又称为C调用约定,是C语言缺省的调用约

2020-06-17 13:30:59

Strstr和Strchr函数详解

Strstr函数详解Strstr函数原型char *strstr( const char *string, const char *strCharSet );Strstr函数功能在一个字符串中找另一个字符串(查找字符串)strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回 str1字符串从 str2第一次出现的位置开始到 str1结尾的字符串;否则,返回NULL。返回值是指针,返回的是子字符串在原先字符串中第一次出现的位置,如果没有找到的话

2020-06-16 11:31:07

删除链表中所有重复的结点

删除链表中所有重复的结点题目描述解题思路:对于删除类的问题需要特别注意的一个点就是链表的头节点,头节点也可能是被删除的结点,所以一般在这种删除类的问题里面,我们都会给出一个伪头结点,为了防止传递二级职责和你这种麻烦的情况出现,首先需要建立一个伪头结点。接下来,就需要我们去遍历整个链表了,如果说当前节点的值与他的下一个结点的值相等的话,那么他们两个就是都需要被删除的了,为了保证删除之后的链表仍然是相互连接在一起的,我们需要把当前结点的前一个结点和后面值比当前结点大的结点进行项链接,我们要确保当前节

2020-06-15 17:06:10

C/C++内存管理

C和C++内存管理本节内容C/C++内存分布C语言中动态内存管理方式C++中动态内存管理operator new与operator delete函数new和delete的实现原理定位new表达式(placement-new)常见面试题C/C++内存分布程序在运行起来之后,操作系统会给我们的程序单独的去划分一块内存空间,操作系统划分的这个空间是虚拟的内存空间,每个程序都有。每个程序的内存空间都是独立的,运行起来都是互相不会影响的。那么内存空间是如何分布的?程序只有在加载在内存里面的

2020-06-15 15:16:20

链表的回文结构

链表的回文结构题目描述:解题思路:思路一:利用快慢指针使用快慢指针法,第一步设置一个块指针和一个慢指针,快指针一次走两步,慢指针一次走一步(慢),当快指针下一步为null的时候说明慢指针已经走了一半,这就可以找到中间节点。第二步反转中间链表后面的指针,第三部从头尾向中间扫描,对比每个元素是否相等,如果都相等,则是回文数,否则不是回文数我们可以在整个链表的结构中首先找到链表的中间结点,然后同时记录下来链表中间结点的前一个结点,让链表中间结点的前一个结点的下一个结点为空,逆置中间结点开始位置处的链

2020-06-13 14:13:27

查看更多

勋章 我的勋章
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。