- 博客(15)
- 收藏
- 关注
原创 PowerDesigner16 类图如何设置关系的名称
2. 双击连线,增加关联的名称,例如这里改为“位于”,点击确定。3. 返回后发现,名称未显示,需要点击连线,右键,选择格式。4. 点击Content,勾选Name,点击确定。5.可以发现名称已显示在关联的上方。1. 类和类之间添加关联关系。
2023-06-05 15:19:50
408
原创 PowerDesigner16 用例图如何设置关系include\extend
例如输入include,点击确定后可以看到关系名称已经出现在用例图中。用--------->表示。
2023-05-18 14:47:40
1267
原创 程序员面试金典——最大子方阵问题:找到四条边颜色相同的最大子方阵
问题描述:有一个方阵,其中每个单元(像素)非黑即白(非0即1),请设计一个高效算法,找到四条边颜色相同的最大子方阵。给定一个01方阵mat,同时给定方阵的边长n,请返回最大子方阵的边长。保证方阵边长小于等于100。测试样例:[[1,1,1],[1,0,1],[1,1,1]],3返回:3解决思路:采用动态规划思想,用两个辅助数组left和up,left[i
2017-07-12 16:12:53
849
原创 STL中查找方法用法总结-adjacent_find, binary_search, includes, lower_bound, upper_bound, equal_range
查找算法adjacent_find, binary_search, includes, lower_bound, upper_bound, equal_range,用法相似,但容易混淆,特查找多处,总结各自的使用方法和限制要求,总结如下。1. adjacent_find:iterator adjacent_find(iterator first, iterator end)在[first
2017-05-24 16:27:55
436
原创 STL中,deque插入或删除元素时,迭代器是否失效的问题
在vs2013上编程测试后,总结如下:deque d1;在deque中增加任何元素都将使deque的所有迭代器失效。在deque的中间删除元素将使所有的迭代器失效。在deque的头或尾(d1.begin(),d1.end())删除元素时,只有指向该元素的迭代器失效。
2017-05-23 11:25:20
1169
2
原创 STL方法中,resize()和reserve()的区别和用途
之前对二者用法总是混淆,所以花时间仔细研究了一下,并在vs2013下测试了一些简单的vector的例子,总结如下:resize():改变当前容器内含有元素的数量(size()),eg: vectorv; v.resize(len);v的size变为len,如果原来v的size小于len,那么容器新增(len-size)个元素,元素的值为默认为0.当v.push_back(3);之后,则是3是放
2017-05-23 11:00:49
5670
原创 6种常用的迭代器 ostream_iterator,istream_iterator,reverse_iterator,back_insert_iterator,front_insert_itera)
6种常用的迭代器整理1. ostream_iteratorostream_iterator out_iter(cout," ");int: 被发送给输出流的数据类型;char: 指出了输出流使用的字符类型(另一个可能的值是w_char);cout:要用的输出流,这里是cout,也可以是文件流,eg: ofstreamout_file("output_file.txt");"
2017-05-19 17:23:11
1282
原创 streamstring的基本使用方法和对它的个人理解
网上查了很多资料,自己对它有个简单的理解,感觉这个理解比较好记,而且用起来也很方便。使用stringstream对象s简化类型转换,它内部有一个string的流对象缓冲区,它会识别输入的变量(s>右边的变量)的类型,然后从流对象中转化到该类型赋值给这个对象。在每次用过一次之后要清除s里剩余的字符(s.str("");),然后因为输出一次它内部的一些位就失效了,因此还要clear一下(s.c
2017-05-19 11:27:10
2206
原创 编程之美-2.17 数组移位循环
设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。方法:将数组A(含N个元素)右移K位,相当于把A分为两部分,前(N-K)个元素A1和后K个元素A2,右移的过程是将两部分交换位置,即原A=A1 A2,移位后为A'=A2 A1,A1,A2内部的元素顺序是不变的。因此具体实现可通过以下步骤完成:先将A的元素全部逆序排列(A2的元素放到A1的
2017-04-20 15:43:43
445
原创 编程之美-2.16 求数组中最长递增子序列
写一个时间复杂度尽可能低的程序,求一个一维数组(N个元素)中的最长递增子序列的长度。例如:在序列 1, -1,2,-3,,4, -5, 6, -7中,其最长的递增子序列为1,2,4,6。本文使用书中的解法二:输入数组A,长度为len。vector iLenTailMinVal(len + 1): iLenTailMinVal[I]表示长度为i的一组递增子序列中最小的尾元素的值;vect
2017-04-19 20:09:09
356
原创 编程之美-2.15 子数组之和的最大值(二维)
给一个二维数组,求子数组的和的最大值,也就是求子矩阵的最大和。这道题的解题思路与2.14求数组的子数组之和的最大值有类似之处,具体步骤如下:设原数组为A,行数为row,列数为column.1. 先求矩阵P(row+1,column+1), P[i,j]表示在A中以A[i-1,j-1]到A[0,0]为对角线的子矩阵的元素之和。初始化:P[0,i]=0,i=0,1,...colum;
2017-04-19 15:44:51
313
原创 编程之美-2.14 求数组的子数组之和的最大值
如题,给一个数组A,求这个数组的子数组之和的最大值。注意:这里的子数组为连续的,只需要求和,不需要返回子数组的具体位置。根据书上的解法3,用startNum表示连续子数组的开始值,用maxSum表示子数组之和的最大值,二者均初始化为A[0],然后通过遍历数组A,不断更新startNum和maxSum,最终返回maxSum。代码如下:#include #include using
2017-04-18 20:54:31
397
原创 编程之美-2.13 子数组最大乘积
问题描述:给定一个长度为N的数组,只允许用乘法,不允许用除法,计算任意N-1个数的组合乘积中的最大的一组,并写出算法时间复杂度。按照编程之美一书中所描述的解法1,时间复杂度O(N)。基本原理:第i个元素被排除在乘积之外,则其他N-1个元素之积 subProductI [ i ]=preI[i] *postI[i]; preI[i] 为第1-(i-1)个元素之积,postI[i]为第(i+1
2017-04-18 19:45:12
288
原创 用C语言实现将int类型转化为字符串,不使用已有的转换函数
昨天面试腾讯,让用C语言实现将int类型转化为字符串,不使用已有的转换函数。写代码的过程中出现了许多错误,记录一下,函数原型是面试官给出的。(原型的一些缺陷应该是面试官设的陷阱,我自己太弱都掉进去了。。。)实现代码如下#include #include #define INT_MAX 2147483647#define INT_MIN (-2147483647-1)//必须是这种
2017-04-18 16:11:58
7002
原创 编程之美-2.11 寻找最近点对
问题描述:给定平面上N个点的坐标,找出距离最近的两个点。解决方法:参考编程之美书上所介绍的解法三(分治思想)。方法框架: 1. 将点按照x坐标排序,找到中间点M将所有点分成两个部分,Left和Right。2. 找出Left和Right区域分别最小的两点距离DisL, DisR, 则最短距离为DisMin=Min(DisL, DisR);3. 在所有节点中找到x属于(M.x-D
2017-04-17 20:16:06
731
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人