`
文章列表
一,题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 二,题目难点在于时间复杂度控制在O(n) 三,方法一 1,分别从数组前,数组后向中间查找。直到前后相遇!! 2,当前得到currentSum>sum说明:大的数太大(数组递增,后面的数太大)。应该将指向最后的标记向前挪动 3,当前得到currentSum<sum说明:大的数太小(数 ...
(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 ...
送给那些即将找工作的人 1 文化 百度提倡“简单,可依赖”,我的理解是做出来的产品要靠谱,要有很好的用户体验。以搜索起家的百度,对产品质量相当看中,因为当用户认定你做得不好,没口碑后可立马更换搜索引擎。公司设有专门的质量部门,各个产品都会配备有QA人员,负责产品质量。从每年校招也能看出来,做测试的比例大概是研发的二分之一。 而腾讯提倡“拿来主义”、“微创新”。腾讯很多产品都是抄袭别人的,然后再想办法在此基础上做一些适应性改变,并称其为“微创新”。由于腾讯IM软件的用户粘性比搜索引擎强太多(从3Q大战就能看出来),他不会像百度一样强调产品质量,测试人员较少,公司强调快速跟进市场,抢占市场,动 ...
信号函数: 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 ...
由于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; ...
一,数组 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);//计算元素个数(可见字符个数) ...
一,题目:输入一个单向链表,输出该链表中倒数第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 ...
一,题目:求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 ...
源码: #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 ...
不同的情况对应有不同的解决的办法. 如果你想得到一个控件相对于它的父窗口的位置,你需要使用widget->allocation.x 和 widget->allocation.y. 如果你想的到一个窗口相对于X主窗口(X root window)的位置, 你应该使用gdk_window_get_geomet ...
一,任意拖动窗口中的按钮 源码: #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 ...
一,题目: 如果把二叉树看成一个图,父子节点之间的连线看成是双向的(无向图),定义"距离"为两节点之间边的个数。写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。 二,思路 误导思路:不要以为求树的高度。 正确思路:求“图”中任意两个节点之间,相距最远的的两个节点之间的距离。 求解步骤:A,经过根节点,左边最深的点到右边最深的点的距离。 B,不经过根节点,而是左子树或右子树中最大距离,取其大者。 三,图解 情况A: 情况B: A A / \/ \ B C B O / \ / \ / \ D E F G C D /\ E ...
工具栏(Toolbars)常用来将一些构件分组,这样能够简化定制它们的外观和布局。典型情况下工具栏由带图标和标签以及工具提示的按钮组成,不过,其它构件也可以放在工具栏里面。最后,各工具栏组件可以水平或垂直排列,还可以显示图标或标签,或者两者都显示。 用下面的函数创建一个工具栏(可能有些人已经猜到了): GtkWidget *gtk_toolbar_new( void ); 创建工具栏以后,可以向其中追加、前插和插入工具栏项(这里意指简单文本字符串)或元素(这里意指任何构件类型)。要想描述一个工具栏上的对象,需要一个标签文本、一个工具提示文本、一个私有工具提示文本、一个图标和一个回调函数。例 ...
一、标签构件   标签构件(GtkLabel)是GTK中最常见的构件,它是静态的不可编辑的字段。在屏幕上,常常用标号说明其他字段。在按钮上设置标签用来说明按钮,或者放在其他字段的旁边对该字段提供说明。它不能自身引发 ...
一、常用构件函数 最常用的构件是按钮构件、录入字段构件、列表框构件和复合框构件。所有建立按钮的函数返回指向GtkWidget的指针。GtkWidget指针能够调用对构件进行操作的通用函数。函数gtk_widget_show是通用函数的例子。 ...
Global site tag (gtag.js) - Google Analytics