- 浏览: 231363 次
最新评论
-
naouguhtaeyeti:
当台阶数大时,这个用递归效率太低
【100题】第二十七 跳台阶问题
文章列表
一,题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。
二,题目难点在于时间复杂度控制在O(n)
三,方法一
1,分别从数组前,数组后向中间查找。直到前后相遇!!
2,当前得到currentSum>sum说明:大的数太大(数组递增,后面的数太大)。应该将指向最后的标记向前挪动
3,当前得到currentSum<sum说明:大的数太小(数 ...
- 2012-01-10 00:11
- 浏览 699
- 评论(0)
(1)首先通过一个例子看(int)和(int&)的区别:
float a = 1.0f;
cout << (int)a << endl;
cout << (int&)a << endl;
cout << boolalpha << ( (int)a == (int&)a ) << endl; // boolalpha 用符号形式表示真假
float b = 0.0f;
cout << (int)b << endl;
cout << (in ...
- 2012-01-07 22:26
- 浏览 753
- 评论(0)
送给那些即将找工作的人
1 文化
百度提倡“简单,可依赖”,我的理解是做出来的产品要靠谱,要有很好的用户体验。以搜索起家的百度,对产品质量相当看中,因为当用户认定你做得不好,没口碑后可立马更换搜索引擎。公司设有专门的质量部门,各个产品都会配备有QA人员,负责产品质量。从每年校招也能看出来,做测试的比例大概是研发的二分之一。
而腾讯提倡“拿来主义”、“微创新”。腾讯很多产品都是抄袭别人的,然后再想办法在此基础上做一些适应性改变,并称其为“微创新”。由于腾讯IM软件的用户粘性比搜索引擎强太多(从3Q大战就能看出来),他不会像百度一样强调产品质量,测试人员较少,公司强调快速跟进市场,抢占市场,动 ...
- 2012-01-07 00:15
- 浏览 537
- 评论(0)
信号函数:
gint gtk_signal_connect(GtkObject *object,gchar *name,GtkSignalFuncfunc,gpointer func_data);
回掉函数的格式:
void callback_func(GtkEidget *widget,gpointer callback_data);
GTK的事件:gtk组件的行为或者X服务器发送的事件可以与下列事件联系起来:
button_press_event <wbr><span style="font-size:18px"><strong ...
- 2012-01-05 14:26
- 浏览 618
- 评论(0)
由于GTK 3.0将许多GTK 2.0的API都丢弃,转到GTK 3.0下编译后有些不适应,所以感觉能在GTK 3.0下调试成功这个Demo还是很成功的。
源码
#include <gtk/gtk.h>
int main( int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *layout;
GtkWidget *image;
GtkWidget *button;
...
- 2012-01-05 09:34
- 浏览 1806
- 评论(0)
一,数组
1,数组只有在定义时候才能使用初始化,不能将一个数组赋给另一个数组。
int a[4]={1,2,3,4};//正确
int a[4];
a[4]={1,2,3,4};//不正确
int b[4]=a;//不正确
2,初始化数组时候,提供少于数组元素数目的部分数值,则将剩余赋值为0;
float a[5]={1,2};
3,如果初始化数组时候,方括号内[ ]为空。C++编译器将计算元素个数。
short a[ ]={1,2,3,4,5};
int number=sizeof(a)/sizeof(short);//计算元素个数(可见字符个数)
...
- 2011-12-31 00:50
- 浏览 575
- 评论(0)
一,题目:输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。
二,分析:这是某一年的考研试题中,数据结构的一个题。题目本身难度不大。
三,思路:设置两个指针p1,p2;
p1=head; p2=head;
先让p2向前走k步,然后同时让p1,p2向后走。
当p2走到头的时候,p1所指的节点就是所求节点。
四,源码:
#include "stdio.h"
#include "malloc.h"
struct node
{
int data;
n ...
- 2011-12-28 00:40
- 浏览 586
- 评论(0)
一,题目:求1+2+…+n,
要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
二,分析:循环只是让相同的代码执行n遍而已,我们完全可以不用for和while达到这个效果。
比如定义一个类,我们new一含有n个这种类型元素的数组
那么该类的构造函数将确定会被调用n次。我们可以将需要执行的代码放到构造函数里。
三,这是一类纯技巧性的题目,主要考察对语言技巧的熟练程度。
源码一:
#include "stdio.h"
int sum(int n)
{
int val ...
- 2011-12-27 00:35
- 浏览 600
- 评论(0)
源码:
#include <gdk/gdkcursor.h>
#include <gtk/gtk.h>
#define TEST_W 100
#define TEST_H 80
gboolean drag = FALSE; // 只在左键按下时拖动窗体
gboolean hide = FALSE; // 只在左键按下时拖动窗体
int nX = 0;
int nY = 0;
GtkWidget *window;
static gint button_press_event(GtkWidget * widget,GdkEventButton * event ...
- 2011-12-26 12:41
- 浏览 764
- 评论(0)
不同的情况对应有不同的解决的办法.
如果你想得到一个控件相对于它的父窗口的位置,你需要使用widget->allocation.x 和 widget->allocation.y.
如果你想的到一个窗口相对于X主窗口(X root window)的位置,
你应该使用gdk_window_get_geomet ...
- 2011-12-26 11:55
- 浏览 764
- 评论(0)
一,任意拖动窗口中的按钮
源码:
#include <gtk/gtk.h>
GtkWidget *window;
GtkWidget *fixed;
GtkWidget *button;
gboolean drag = FALSE; // 只在左键按下时拖动窗体
gint nX = 0;
gint nY = 0;
void destroy(GtkWidget *widget, gpointer *data)
{
gtk_main_quit();
}
static gint button_press_event(GtkWidget * widget,GdkEven ...
- 2011-12-25 23:21
- 浏览 1166
- 评论(0)
一,题目:
如果把二叉树看成一个图,父子节点之间的连线看成是双向的(无向图),定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。
二,思路
误导思路:不要以为求树的高度。
正确思路:求“图”中任意两个节点之间,相距最远的的两个节点之间的距离。
求解步骤:A,经过根节点,左边最深的点到右边最深的点的距离。
B,不经过根节点,而是左子树或右子树中最大距离,取其大者。
三,图解
情况A: 情况B:
A A
/ \/ \
B C B O
/ \ / \ / \
D E F G C D
/\
E ...
- 2011-12-25 00:41
- 浏览 832
- 评论(0)
工具栏(Toolbars)常用来将一些构件分组,这样能够简化定制它们的外观和布局。典型情况下工具栏由带图标和标签以及工具提示的按钮组成,不过,其它构件也可以放在工具栏里面。最后,各工具栏组件可以水平或垂直排列,还可以显示图标或标签,或者两者都显示。
用下面的函数创建一个工具栏(可能有些人已经猜到了):
GtkWidget *gtk_toolbar_new( void );
创建工具栏以后,可以向其中追加、前插和插入工具栏项(这里意指简单文本字符串)或元素(这里意指任何构件类型)。要想描述一个工具栏上的对象,需要一个标签文本、一个工具提示文本、一个私有工具提示文本、一个图标和一个回调函数。例 ...
- 2011-12-21 15:43
- 浏览 969
- 评论(0)
一、标签构件
标签构件(GtkLabel)是GTK中最常见的构件,它是静态的不可编辑的字段。在屏幕上,常常用标号说明其他字段。在按钮上设置标签用来说明按钮,或者放在其他字段的旁边对该字段提供说明。它不能自身引发 ...
- 2011-12-21 15:13
- 浏览 797
- 评论(0)
一、常用构件函数
最常用的构件是按钮构件、录入字段构件、列表框构件和复合框构件。所有建立按钮的函数返回指向GtkWidget的指针。GtkWidget指针能够调用对构件进行操作的通用函数。函数gtk_widget_show是通用函数的例子。
...
- 2011-12-21 14:53
- 浏览 663
- 评论(0)