- 博客(228)
- 收藏
- 关注
原创 jvm课程学习一
类加载在java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的提供了更大的灵活性,增加了更多的可能性1)此处类型代表class对象2)在runtime期间完成加载、连接和初始化3)加载:class文件加载到内存中类加载器深入剖析java虚拟机与程序的生命周期在如下几种情况下,java虚拟机将结束生命周期1)执行了system.exit()方法2)程序正常执行结束3)程序在执行的过程中遇到了异常或错误而异常终止(抛异常不处理抛到main方法导致jvm退出)4)由于操
2020-06-14 15:17:58
271
原创 requestMappingHandlerMapping的原理
这些类分别的作用是啥?为啥要这样设计#初始化config对象,接着调用父类的afterPropertiesSet方法 public void afterPropertiesSet() { # RequestMappingInfo用于保存Request mapping information.里面有RequestMapping注释中的各种condition, #比如:patternsCondition,methodsCondition,paramsCondition等 #RequestMap...
2020-06-06 17:21:34
1567
原创 springboot项目中出现Whitelabel Error Page
访问springboot项目显示结果出现白页的原因:请求进入org.springframework.web.servlet.DispatcherServlet#doDispatch方法中:#通过请求查询可供处理的handlermappedHandler = getHandler(processedRequest);默认注册了4个handlerMapping,分别是:org.springframework.web.servlet.mvc.method.annotation.RequestM
2020-06-04 22:42:13
3120
原创 2020年-2月14号
要养成的美德正念深度思考隔天运动深度思考转动眼球除非下一代避免性生活-不侧身睡觉持之以恒拒绝软弱更长时间的专注一诺千金今天要养成的美德:持之以恒今天要完成的任务:将微服务平台搭建成功...
2020-02-14 23:13:11
377
原创 2020年-2月12号
今天解决了困扰已久的casServer问题,通过日志,官方文档,源代码进行深入了解流程,机器好才是真的好。用心于当下有助于问题的解决,而正念内心可以做到这点。...
2020-02-12 00:05:33
195
原创 2020年-2月3号
新的需要养成的习惯不急躁:做事慌慌张张,不能深入,丢三落四,往往会事倍功半。时时刻刻提示自己要冷静,说话前先在肚子里过上一遍,说话慢一点未来不迎,当下不杂,既过不恋:对于未来要发生的事情不抱有期望或者担忧,但是要做相应的计划;对于过去发生的喜欢的事就让它随风飞去,将全部的身心投入到当下的事情中去,活在当下,练习冥想碰到问题的态度:自己能否再多学一点,自己能否更多思考一下眼保健操:多做...
2020-02-03 23:29:00
389
原创 网宿笔试题
最小生成树算法从一个含有重复数字的数组中寻找两个没有重复的数字简单版本:从一个只有一个不重复数字的数组中找出这个数字。直接异或,异或的结果就是这个不重复的数字。要是可以将这个数组分为两个只含有一个不重复数字的数组则可以仿照简单版本求出结果,问题转换为如何将这个数组换分为两个只含有一个重复数字的子数组。how?将原数组求出异或结果,利用结果不为0,其必有一位为1,说明两个不重复数字在这位不同...
2018-10-12 10:01:33
772
原创 最小生成树算法
利用prim算法实现的最小生成树算法将集合U划分为A和B两个子集,不断的将连接A,B集合的最小权值的点不断的从B中加入到A中,直到遍历整个集合U。算法过程:先选取一个初始点作为集合A,集合B为ADev补集选取连接集合A,B的权值最小边,将在集合B中的点添加到集合A中不断的重复上面的过程算法复杂度O(n*n)import java.util.Arrays;class Graph...
2018-10-12 09:34:29
227
原创 面试题4:二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。bool Find(int* matrix, int cols, int rows, int target) {}bool Find(int* matrix, int rows, int columns, int number)
2018-03-03 11:29:14
203
原创 c++之const
const可以改善程序的健壮性基础int b=500;【1】const int* a=&b;【2】int const *a=&b;【3】int* const a=&b;【4】const int* const a=&b;如果const位于*的左边,则const用来修饰指针所指向的变量; 如果const位于*的右边,则const用来修饰指针本身。 因此【1】【2】不允许对内容进行修改。
2018-03-03 09:49:24
220
原创 面试题1:赋值运算符函数
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。 class CMyString{public: CMyString(char* pData = nullptr); CMyString(const CMyString& str); ~CMyString(void);private: char* m_pData;};CMyString:
2018-02-25 20:02:49
216
原创 数据结构之插入排序
始终将序列切分为有序的两部分:有序的前缀,无序的后缀,通过迭代,反复的将后缀的首元素转移至前缀中。最坏时间复杂度O(n^2)代码void insertSort(vectorint> &vec,int n) { for (int i = 1; i < n; i++) { int key = vec[i], j = i; for (; j >0;
2018-02-03 15:06:37
185
原创 数据结构之选择排序
将序列分为unsorted(前)部分和sorted(后)部分,每次从取出unsorted取出值放入sorted的最前方。时间复杂度O(n^2)代码void selectSort(vectorint>& vec, int n) { for (int i = 0; i < n; i++) { int mx = i; for (int j = i+1;
2018-02-03 14:47:44
188
原创 排序算法之归并排序
第一个在最坏情况下时间复杂度为O(nlogn)的算法用于分布式平台中处理海量数据代码void merge(vectorint> &vec, int lo, int mid, int hi) { int len1 = mid - lo,len2=hi-mid,i=0,j=0,k=0; int* A=new int[len1]; for (int i = 0;
2018-02-03 14:33:54
150
原创 排序算法之冒泡排序
冒泡排序为选择排序的一种特例。最坏情况下的时间复杂度为O(n^2)。void bubbleSort(vectorint>& vec, int n) { bool sort = false; while (!sort) { sort = true; for (int i = 1; i <n; i++) { if (vec[
2018-02-03 14:02:36
126
原创 番茄时间-2018点1月29
番茄时间:10点10到10点35 目标:113到117 完成情况:完成 番茄时间:10点55到11点15 目标:118到126 完成情况:完成 番茄时间:11点25到11点50 目标:完成PFC 完成情况:未完成 番茄时间:13点30到13点55 目标:完成136到142 完成情况:完成 番茄时间:14点05到14点30 目标:看完Huffman编码算法 完成情况:完成
2018-02-03 13:29:51
193
原创 番茄工作法--2018年1月28号
番茄时间:10点09到10点34 目标:码完八皇后代码 完成情况:完成 番茄时间:11点12到11点37 目标:理解八皇后原理 完成情况:完成 番茄时间:14点18到14点43 目标:完成迷宫搜索 完成状况:未完成 解决办法:端正学习的态度,既来之则安之。 番茄时间:14点52到15点17 目标:完成递归版本的八皇后问题 完成情况:完成 番茄时间:15点23点15点58
2018-01-29 10:03:58
183
原创 第四章--栈
特点后进先出单端操作 只能从栈顶插入删除栈的定性应用逆序输出-进制转换 递归版本void convert(int n, stack <char> &s, int base) { if (n < 1) return; char digit[] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
2018-01-28 22:44:00
247
原创 番茄时间--2018年1月27日
上午10点醒,在宿舍逛淘宝买鞋,牛仔裤。 番茄时间:19点42到20点07 目标:完成第四章的符号匹配和延迟缓冲 完成情况:完成 番茄时间:23点06到23点31 目标:码完求值算法 完成情况:未完成 原因:执行番茄不彻底 番茄时间:00:50到1点05 目标:完成求值算法 完成情况:完成 番茄时间:1点42到2点07 目标:理解求值算法的代码 完成情况:完成 番茄时间
2018-01-28 10:07:39
195
原创 番茄时间法--2018年1月26号
番茄时间10点16到10点41 10点42到10点47 目标:66页到72页 状态:66页到72页 番茄时间10点50到11点15 目标:73到79页
2018-01-27 15:46:20
216
原创 第三章-list
特点逻辑次序不和物理位置完全对应循位置访问动态操作(insert,remove)效率高,静态操作(find,search)效率低封装一个私有头结点,尾节点的双向链表插入排序描述始终将整个序列分为两个部分:有序的前缀,无序的后缀,通过迭代,将无序后缀的首元素插入到有序的前缀中。特点输入敏感时间复杂度O(n^2)In-place sort版本一void insertSort(int* v
2018-01-26 21:48:18
141
原创 第二章-vector
二分法查找版本A#include #includeusing namespace std;int binaSearch(int e, vectorint> vec) { int lo = 0, hi = vec.size(); while (lo<hi) { int mid = (lo + hi) >> 1; cout <
2018-01-26 10:35:46
219
原创 番茄记录--2018年1月25号
每次和别人聊天后可以思考一下自己的问题所在,下次可以改正。 说话的要点是在自信的状态下放松的说,想想自己即使说错了别人也不能把你咋地番茄计划:14点45到15点10 15点11到15点16 目标:完成37页到45页。 完成状态:完成37页到41页 番茄时间:15点19到15点44 15点45到15点50 目标:完成42到50页 完成状态:完成42到46 番茄时间:1
2018-01-26 09:57:15
175
原创 6. ZigZag Conversion
string convert(string s, int numRows) { string res=""; if(numRows==1) return s; for(int i=0;i<numRows;i++){ for(int j=0,k=i;k<s.size();j++){ res+=s[k
2018-01-15 11:32:52
167
原创 696. Count Binary Substrings
统计1的个数小于等于0的个数,可能为”01”,”001”,”00011”,存在符合条件的字符串 统计0的个数小于等于1的个数,可能为”10”,”110”,”11100”。 int countBinarySubstrings(string s) { int zeros=0,ones=0,res=0; for(int i=0;i<s.size();i++){
2018-01-15 10:10:24
181
原创 695. Max Area of Island
vector<vector<int>> dirs{{0,-1},{-1,0},{1,0},{0,1}}; int maxAreaOfIsland(vector<vector<int>>& grid) { int m=grid.size(),n=grid[0].size(),res=0; for(int i=0;i<m;i++){ for
2018-01-15 09:07:49
146
原创 693. Binary Number with Alternating Bits
bool hasAlternatingBits(int n) { string str=""; while(n){ str+=to_string(n&1); n>>=1; } return (str.find("00")==string::npos)&&(str.find("11")==s
2018-01-12 11:56:33
143
原创 690. Employee Importance
int getImportance(vector<Employee*> employees, int id) { queue<int> q; int res=0; q.push(id); while(!q.empty()){ int t=q.front();q.pop(); for(aut
2018-01-12 11:25:17
159
原创 687. Longest Univalue Path
int longestUnivaluePath(TreeNode* root) { if(!root) return 0; int res=0; helper(root,res); return res; } int helper(TreeNode* node,int &res){ if(!node) r
2018-01-12 10:51:17
124
原创 686. Repeated String Match
int repeatedStringMatch(string A, string B) { int a=A.size(),b=B.size(),cnt=1; string t=A; while(t.size()<b){ t=t+A; cnt++; } if(t.find(B
2018-01-12 09:47:46
232
原创 682. Baseball Game
int calPoints(vector<string>& ops) { vector<int> res; for(auto a:ops){ if(a=="C"){ res.pop_back(); }else if(a=="D"){ res.push_bac
2018-01-12 00:47:27
152
原创 680. Valid Palindrome II
bool validPalindrome(string s) { int left=0,right=s.size()-1,num=0; while(left<=right){ if(s[left]==s[right]){ left++; right--; }
2018-01-12 00:10:50
124
原创 674. Longest Continuous Increasing Subsequence
int findLengthOfLCIS(vector<int>& nums) { if(nums.empty()) return 0; int res=0,n=nums.size(),ma=0; for(int i=0;i<n-1;i++){ if(nums[i]<nums[i+1]) res+
2018-01-11 23:12:06
160
原创 671. Second Minimum Node In a Binary Tree
int findSecondMinimumValue(TreeNode* root) { int second=INT_MAX,first=INT_MAX; preOrder(root,first,second); return second==INT_MAX?-1:second; } void preOrder(TreeNode* r
2018-01-11 19:58:15
126
原创 669. Trim a Binary Search Tree
TreeNode* trimBST(TreeNode* root, int L, int R) { preOrder(root,L,R); return root; } void preOrder(TreeNode* &node,int l,int r){ if(!node) return ; if(node->val<
2018-01-11 12:00:59
118
原创 665. Non-decreasing Array
bool checkPossibility(vector<int>& nums) { int cnt=0; for(int i=1;i<nums.size()&&cnt<=1;i++){ if(nums[i-1]>nums[i]){ cnt++; if(i-2<0||nums[i-
2018-01-11 10:13:10
143
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人