随笔分类 -  编程技巧

摘要:放假回家好久没写代码了 题目描述 实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。 保证字符串中的字符为ASCII字符。字符串的长度 阅读全文
posted @ 2016-02-23 11:28 代码的搬运工 阅读(316) 评论(0) 推荐(0)
摘要:如题: 递归函数往往可以简化我们的代码,尤其是对树的遍历和利用回溯算法写代码的时候,但是递归函数的返回值往往是困扰我们的。 总体来说,我们先要理解函数的调用过程,函数调用过程会用栈来保存函数的返回值和过程,而递归函数就是调用自身函数的过程,所以也是用栈存储,这样就比较容易理解了。 下面一段代码可以帮 阅读全文
posted @ 2015-12-16 20:28 代码的搬运工 阅读(20194) 评论(1) 推荐(1)
摘要:题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。 1 /* 2 *思路: 阅读全文
posted @ 2015-12-06 20:34 代码的搬运工 阅读(820) 评论(0) 推荐(0)
摘要:注意边界,注意边界,注意边界,重要的的问题说三遍题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家... 阅读全文
posted @ 2015-12-04 10:29 代码的搬运工 阅读(486) 评论(0) 推荐(0)
摘要:问题描述:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 1 /* 2 *比较两个数字拼接字符串时,谁排在前的call back 函数 3 ... 阅读全文
posted @ 2015-11-19 18:54 代码的搬运工 阅读(412) 评论(0) 推荐(0)
摘要:1 package com.datastruct; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 6 public class BigHeap { 7 8 9 10 /* 11 *交换堆中的两个元素 12 */ 1... 阅读全文
posted @ 2015-11-17 15:36 代码的搬运工 阅读(907) 评论(0) 推荐(0)
摘要:题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。代码如下,java依旧:import java.util.ArrayList;import j... 阅读全文
posted @ 2015-11-14 15:41 代码的搬运工 阅读(473) 评论(0) 推荐(0)
摘要:又是一道牛客网的问题。描述如下:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路:这题可以用插入排序的思想解决。如果不喜欢复杂的操作就创建一个新链表来对两个链表合并,否则可以使用其中一个链表作为插入的链表,不过那样会有很多节点断链以及修复链的操作,... 阅读全文
posted @ 2015-10-30 11:29 代码的搬运工 阅读(1075) 评论(0) 推荐(0)
摘要:二分查找需要注意两个问题一个是临界问题,流行的方案是左开右闭区间方式,还有一个就是当数组元素中有多个相同待查找值的应该返回第一个,下面的代码可以解决这问题,记录一下,由于最近开始用gvim编程了,请原谅我的中式英语注释。 1 /* 2 * binary search from programing... 阅读全文
posted @ 2015-10-27 16:15 代码的搬运工 阅读(370) 评论(0) 推荐(0)
摘要:自己研究编了一个数组去重的函数,有好的意见或思想欢迎和我一起分享! 1 #include <stdio.h> 2 #include <string.h> 3 4 #define MAX_FRIEND 100 5 6 int repeats_num[MAX_FRIEND]; 7 8 /*升序排序*/ 阅读全文
posted @ 2015-03-04 17:24 代码的搬运工 阅读(2480) 评论(0) 推荐(0)
摘要:3.代码如下 #include <stdio.h> #include <stdlib.h> #define MAX_NUM 1000 + 10 int main() { int i,j,num_case,num_number,number[MAX_NUM]; int offset = 0,count 阅读全文
posted @ 2015-02-02 17:11 代码的搬运工 阅读(227) 评论(0) 推荐(0)
摘要:先来描述一下问题:问题描述有n小孩在比赛跳远,看谁跳的最远。每个小孩可以跳3次,这个小孩的成绩就是三次距离里面的最大值。例如,一个小孩跳3次的距离分别时10, 30和20,那么这个小孩的成绩就是30。给出每个孩子三次跳的距离,问最终每个孩子的排名是多少。问题分析:方法1: 由于原问题规模较少,只有... 阅读全文
posted @ 2015-01-28 16:40 代码的搬运工 阅读(418) 评论(0) 推荐(0)
摘要:我们往往习惯将运算过程的临时结果存储起来,这样的思想比较容易理解也是惯性的思维,然而往往大多数情况下我们不需要存储中间过程的变量。这里举一个例子,杭电OJ的1003题MaxSum,虽然同时采用暴力求解,但是中间的sum结果不采用二维数组存储而只是简单的通过每次置0后重新计算这样就可以节省空间。虽然超... 阅读全文
posted @ 2015-01-19 20:22 代码的搬运工 阅读(308) 评论(0) 推荐(0)