
算法、开发学习日记
加油嘻嘻
不得分前锋
这个作者很懒,什么都没留下…
展开
-
11/3每日一题easy 有效的山脉数组
思路:找出第一个小于或等于前一个数的数,假定前一个数的位置是top,再判断这个top后面是否符合递减。代码:class Solution {public: bool validMountainArray(vector<int>& A) { if(A.size()<3) return false; int preNum=A[0]; int topIndex=0; for(int i=.原创 2020-11-03 15:12:57 · 786 阅读 · 1 评论 -
哈希表是什么?如何设计哈希函数并解决冲突?
今天学习大名鼎鼎的Hash Table原创 2020-08-27 00:11:37 · 919 阅读 · 1 评论 -
8/16剑指Offer——二叉树的镜像&栈与队列知识
方法:递归遍历首先我想到的就是交换根节点的孩子节点的位置,然后再交换这些孩子节点的孩子节点的位置。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class S..原创 2020-08-24 23:14:15 · 133 阅读 · 0 评论 -
8/16 剑指Offer58——左旋转字符串
方法一最容易想到的应该是这个方法了,定义一个新的字符串,再用两个for循环,问题是这个方法效率并不高。class Solution {public: string reverseLeftWords(string s, int n) { string r; for(int i=n;i<s.length();i++){ r.push_back(s.at(i)); } for(int i=0;i<n;原创 2020-08-16 13:25:33 · 106 阅读 · 0 评论 -
8/15 动态规划——爬楼梯、最小花费爬楼梯
爬楼梯根据题目,可以知道,通过n阶到楼顶的方法数是到n-1阶的方法数加上到n-2阶的方法数。很容易想到递归的方法,以及斐波那切数列:f(n)=f(n-1)+f(n-2)。递归:class Solution {public: int climbStairs(int n) { if(n==2) return 2; if(n==1) return 1; return climbStairs(原创 2020-08-16 00:15:18 · 224 阅读 · 0 评论 -
8/13 字符串相加、相乘(有问题未解决)
字符串相加:字符串相乘:基础知识:push_back是编程语言里面的一个函数名。如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。string中也有这个函数,作用是字符串之后插入一个字符。reverse函数的用法:头文件:#include <algorithm>这个函数用于反转 [first,last) 之间的内容 ,这个函数是没有返回值的。使用实例:反转vector容器中元素顺序:reverse(原创 2020-08-15 15:11:52 · 172 阅读 · 0 评论 -
8/13《Linux高性能服务器编程》——TCP协议
TCP协议比IP协议更靠近应用层,因此在应用程序中具有更强的操作性,一些重要的socket选项都和TCP协议相关。TCP头部信息出现在每个TCP报文段,作用:指定通信的源端端口、目的端端口号、管理TCP连接、控制两个方向的数据流等TCP状态转移过程TCP数据流两种:交互数据流和成块数据流TCP数据流的控制包括超时重传和拥塞控制TCP服务特点相对于UDP协议,TCP协议的特点是面向连接、字节流、可靠传输。使用TCP协议通信的双方必须为连接分配必要的内核资源,用来管理连接的状态和连接上原创 2020-08-13 15:11:23 · 108 阅读 · 0 评论 -
8/11《Linux高性能服务器编程》学习
TCP/IP协议族是因特网使用的主流协议族,是一个分层的多协议的通信体系。体系结构四层:数据链路层:ARP、data-link、RARP(socket在中间)网络层:ICMP、IP传输层:TCP、UDP应用层:telnet、OSPF、DNS1数据链路层实现了网卡接口的网络驱动程序,以处理数据在不同物理媒介上的传输,为上层协议提供统一接口。常用协议:地址解析协议ARP(Address Resolve Protocol)和RARP 逆地址解析协议。实现的是IP地址和机器物理地址(通常是M原创 2020-08-11 14:30:18 · 105 阅读 · 0 评论 -
8/3动态规划-买卖股票的最佳时机
看到这个题,我的想法是:应该和最大连续子数组有相似之处,只要求出每一天卖出的情况下,对应哪一天买入是最佳的。而每次决定卖出的时候,需要知道的是前面哪一天股票价格最低。如果今天比那天价格更低,则更新当前最低价格,另外,如果今天比昨天价格高,则要更新最大利润。class Solution {public: int maxProfit(vector<int>& prices) { int max_profit = 0; int lowest_pri.原创 2020-08-08 18:27:16 · 144 阅读 · 0 评论 -
7/31-8/2 动态规划——基本理论复习&除数博弈&连续子数组的最大和
最近学习效率太太太太低了动态规划的概念最优化原理(分布式求解):在实际生活中,有一类问题的活动过程可以分成若干个阶段,且在任一阶段后的行为依赖于该阶段的状态,与该阶段之前的过程如何达到这种状态的方式无关。这类问题解决的是多阶段的决策过程是处理分段过程最优化问题的一类非常有效的方法多阶段过程的最优决策序列应当具有的性质:无论过程的初始状态和决策是什么,其余的决策都必须相对于初始决策所产生的状态构成一个最优决策序列。最优子结构性质原问题最优解包含了其子问题的最优解,即原问题可以由子原创 2020-08-03 00:59:15 · 151 阅读 · 0 评论 -
2019/7/29-30 反转链表
今天做的题目是很简单的另一道题:反转链表哈哈~反正想从最简单的做起,再复习一下基本概念。链表链表是原创 2020-07-31 02:20:42 · 104 阅读 · 0 评论 -
2020/7/28 二叉树的最大深度~
二叉树的最大深度题目:LeetCode每日一题:太久没学习了,我去复习了一下二叉树!树的引入:更基础的数组和链表都无法兼顾静态操作(查找为例)与动态操作的高效性。而树这种数据结构可以将二者的优点融合.可以将其理解为:列表的列表:list < list >以及:二维的列表:listlist树结构带有线性结构的特征,为了与非线性的图结构相区别,可以理解为半线性结构。连通+无环如果节点之间均有路径,称之为连通图(connected)不含环路的话,就称之为无环图(acy原创 2020-07-29 02:16:36 · 467 阅读 · 0 评论