#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXINT 0x7fffffff
#define MININT 0X80000000
//字符串中第一个只出现一次的字符
char firstSingle(char *str)
{
int a[255];
memset(a, 0, 255 * sizeof(int));
char *p = str;
while (*p != '\0'){
++a[*p];
++p;
}
p = str;
while (*p != '\0'){
if (a[*p] == 1) return *p;
++p;
}
return '\0';
}
//josephus问题 f(n,m)=(f(n-1,m)+m)%n,迭代求解最后一个数的原始数
int joseph(int n, int m)
{
int fn = 0;
for (int i = 2; i <= n; ++i)
fn = (fn + m) % i;
return fn;
} //最大子数组和
int maxSubArraySum(int *a, int n, int &b, int &e)
{
int p, sum, maxSum;
p = sum = 0;
maxSum = MININT;
for (int i = 0; i < n; ++i){
if (sum < 0){
sum = a[i];
p = i;
}
else sum += a[i];
if (sum > maxSum){
maxSum = sum;
b = p;
e = i;
}
}
return maxSum;
}
int main()
{
char str[] = "abaccdeff";
printf("%c\n", firstSingle(str));
printf("%d\n", joseph(5, 3));
int a[] = { 13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7 };
int len, b, e;
len = maxSubArraySum(a, 16, b, e);
printf("the maxSubArray is :\n");
for (int i = b; i <= e; ++i)
printf("%d\t", a[i]);
printf("\nthe maxSubArraySum is : %d\n", len);
}

  

第一个只出现一次的字符,josephus环,最大子数组和的更多相关文章

  1. 剑指Offer面试题:30.第一个只出现一次的字符

    一.题目:第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出'b'.要求时间复杂度为O(n). 最直观的想法是从头开始扫描这个 ...

  2. AC日记——找第一个只出现一次的字符 openjudge 1.7 02

    02:找第一个只出现一次的字符 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符.如果没有,输出no. 输入 一个字符串 ...

  3. 剑指Offer 找出字符串中第一个只出现一次的字符

    题目描述 找出字符串中第一个只出现一次的字符 如果无此字符 请输出'.' 输入描述: 输入一串字符,由小写字母组成 输出描述: 输出一个字符 输入例子: asdfasdfo 输出例子: o 思路:数组 ...

  4. 【编程题目】在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。

    第 17 题(字符串):题目:在一个字符串中找到第一个只出现一次的字符.如输入 abaccdeff,则输出 b. 思路:此题非常容易. 最开始是想开辟一块空间存储每个字符出现的次数. 但转念一想,似乎 ...

  5. 13.第一个只出现一次的字符[FindFirstNotRepeatingChar]

    [题目] 在一个字符串中找到第一个只出现一次的字符.如输入abaccdeff,则输出b. [分析] 这道题是2006年google的一道笔试题. 看到这道题时,最直观的想法是从头开始扫描这个字符串中的 ...

  6. (剑指Offer)面试题35:第一个只出现一次的字符

    题目: 在字符串中找出第一个只出现1次的字符,如输入“abaccdeff”,则输出b. 思路: 1.暴力遍历 从头开始扫描字符串中的每个字符,当访问某个字符时,取该字符与后面的每个字符相比较,如果没有 ...

  7. 剑指Offer:第一个只出现一次的字符

    题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",这输出'b' // 第一个只出现一次的字符 #include <stdio.h> char f ...

  8. 剑指OFFER之第一个只出现一次的字符(九度OJ1283)

    题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据每一组输入一个字符串. 输出: 输出第一个只出现一次的字 ...

  9. 九度OJ 1283 第一个只出现一次的字符

    题目地址:http://ac.jobdu.com/problem.php?pid=1283 题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现 ...

  10. 【剑指offer】面试题35:第一个只出现一次的字符

    题目: 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置.若为空串,返回-1.(书上是要求返回字符) 思路: 第一遍扫描保存下每个字符出现的 ...

随机推荐

  1. 5.7.13mysql 无法登陆

    话不多说 用的http://dev.mysql.com/downloads/mysql/下的ZIP  Archive安装方式 下载 解压,然后吧bin目录添加到系统path环境变量下.然后将my-de ...

  2. Blend制作TextButton和ImageButton

    最近看了几个高人做的软件界面(http://kaodigua.net/),羡慕嫉妒到不行,决定学习一下Blend的用法,马上觉得WPF开发的界面设计就应该放在Blend里面做.学习了两位大神的博客(h ...

  3. C++命名准则

    总则:命名用英语,单词简单,明了.意义明确.过长的单词可以使用省略.一般是去掉元音字母形成省略.如果有通用的缩写,应该采用通用的缩写. 1.函数命名 1.1:全局函数:采用限定词+动词(+名词的原则) ...

  4. 下拉条的连动-ajax方式

    客户端触发: <select id="category1" onchange="changecategory()">    <option v ...

  5. mac + apache + php

    1: 设置下用sublimetext为默认打开方式, 确保下载sublimetext 2:设置下默认打开方式为sm sudo ln -s /Applications/Sublime\ Text\ 2. ...

  6. OpenCV2.4.9+VS2012安装与配置

    需要下载并安装Visual Studio 2012 然后在OpenCV官网下载安装OpenCV2.4.9 for Windows,网址为http://opencv.org/downloads.html ...

  7. SQL Server 数据库的自动选项

    自动选项影响SQL Server 可能会自动进行的操作,所有的这些都是bool值,值为on 或off 1. auto_close: 当这个为on 时.数据库在最后一个用户退出后完全关闭,这样数据库就不 ...

  8. oc对象互相引用内存释放解决方案

    1.ARC 一端用strong,一端用weak 2.非ARC 一端用retain,一端用assign

  9. getHibernateTemplate().find()

    find(String queryString, Object[] values); 这个方法后者的参数必须是一个数组,而不能是一个List. List ul=getHibernateTemplate ...

  10. docker导入本地镜像

    -rw-r--r-- 1 root root 98954220 Mar 17 17:02 centos-6-x86.tar.gz 利用下载的包 创建镜像: cat centos-6-x86.tar.g ...