sbw Blog - C++
  • 来源: sbw Blog | 浏览: 119 | 评论: 1 | 时间: 2019-08-09
    “Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.”——这是 LeetCode 上的一道 Hard 级别的题,是说将多个已经排序的有序序列合并成一个大的有序序列。使用优先队列的方式完成了这个题目,时间应该是 O(nm)。
  • 来源: 石博文博客 | 浏览: 365 | 评论: 0 | 时间: 2019-03-24
    POJ 1007 这个题是一个难度一般的算法题,核心是要计算每一个字符串的权值然后累加并排序。在本题中,这个权值是指为字符串中的每一个字母计算它后面有多个个字母比它小,即发生了多个次“反转”。从这个描述的一般认识来看,这是个 N^2 复杂度的模拟问题,核心在于算法优化及找模型。但由于题目的测试数据比较简单,使用 N^2 复杂度的简单方法也可以很容易通过。这就导致了这个题目的实际比赛难度其实很低。这里从解题思路及推导过程给大家做一个线性复杂度,O(N) 解题方法的分享。
  • 来源: 石博文博客 | 浏览: 2446 | 评论: 2 | 时间: 2017-01-24
    在 Leetcode 上看到一个题(原题地址),最长无重复子串。当时看的第一眼觉得或许可以用动态规划,今天空闲时间实现了一下。
  • 来源: 石博文博客 | 浏览: 2598 | 评论: 4 | 时间: 2016-05-28
    一系列平方数组成的排列,所有的数恰好将0~9使用了一遍,比如 0,1, 4, 9, 872356,或者4, 9, 361, 87025,或者 1436789025。它们分别是一系列平方数组成的排列,而且这个排列恰好把数字 0~9 使用了一遍,现在要编程求出所有的平方数数列。
  • 来源: 石博文博客 | 浏览: 3558 | 评论: 0 | 时间: 2016-01-11
    QComboBox 的弹出列表如果非常长的话,会在上下两端加一个箭头来表示还有内容,但是因为没有对应的 ObjectName 这两个箭头的风格很不好调整,需要根据它的 ClassName 获取到对象之后,采用事件监听的方式捕获它的绘图方法。以 QComboBox 为例,可以采用这种方式去画Qt控件中所有的子面板,子对象,方便个性化修改样式。
  • 来源: 石博文博客 | 浏览: 4111 | 评论: 1 | 时间: 2015-11-30
    准确的说,是“最后一个可视的主窗口被关闭时,UI线程将结束”。今天在调试一个程序的时候,程序会弹出一个 QFileDialog 供用户选择文件,但是发现当这个 Dialog 执行返回之后,整个程序都退出了,查阅了资料后发现,是 Qt 特意设置的。
  • 来源: 石博文博客 | 浏览: 3518 | 评论: 0 | 时间: 2015-01-19
    编写一个程序,输入一个字符串(长度不超过20),然后把这个字符串内的每一个字符进行大小写变换,即将大写字母变成小写,小写字母变成大写,然后把这个新的字符串输出。
    输入格式:输入一个字符串,而且这个字符串当中只包含英文字母,不包含其他类型的字符,也没有空格。
    输出格式:输出经过转换后的字符串。
  • 来源: 石博文博客 | 浏览: 6267 | 评论: 0 | 时间: 2014-07-23
    Qt中的QDrag类提供了MIME数据支持的拖放事件,使用拖放事件,用户可以更直观的移动和改变想在应用程序中使用的数据。无论是在桌面环境下还是平板电脑或其它设备中,使用拖放都可以使程序更加的方便和人性化。为了保证使用的数据可以在事件完成后被清理,QDrag事件需要实现在以QWidget为父类的元素上。本文以一个Demo实现了最常用的文件/文本拖放到应用程序的示例。
  • 来源: 石博文博客 | 浏览: 2693 | 评论: 0 | 时间: 2014-03-22
    一根面条,从中间切一刀,可以得到2根,若先对折一下再切,可以得到3根,若对折2次再切,可以得到5根面条,现在问若对折10次后再切,可以得到几根面条?
  • 来源: 石博文博客 | 浏览: 2981 | 评论: 2 | 时间: 2014-03-22
    长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。
  • 来源: 石博文博客 | 浏览: 2765 | 评论: 0 | 时间: 2014-03-22
    A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 请填写出所有符合要求的排列中,字典序最小的那个。 例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。
  • 来源: 石博文博客 | 浏览: 2208 | 评论: 0 | 时间: 2014-03-22
    如果要在n个数据中挑选出第一大和第二大的数据(要求输出数据所在位置和值),使用什么方法比较的次数最少?我们可以从体育锦标赛中受到启发。8个选手的锦标赛,先两两捉对比拼,淘汰一半。优胜者再两两比拼...直到决出第一名。
  • 来源: 石博文博客 | 浏览: 20089 | 评论: 12 | 时间: 2014-03-04
    Qt中的QListWidget可以实现一个列表,比如网页上经常出现的下拉列表框,其中一行就是一个ListItem,在添加时,常用的函数是QListWidget::addItem(QListWidgetItem * item),但这样只能添加QListWidgetItem这样的对象,如果想到像QQ等软件使用自定义的ListItem,一个简单的方法是自定义一个QWidget,然后使用QListWidget::setItemWidget(QListWidgetItem * item, QWidget * widget)来设置它的显示widget.