![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
尤蒂莱兹
渴望伯乐的失业程序员
展开
-
练习题13-求数组中自身之外的乘积
原题目:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 不要使用除法,且在 O(n) 时间复杂度内完成此题。思路:1.用for循环遍历数组中每个元素,在for循环中算出元素左边的乘积和2.同上,但是用for循环算出元素右边的乘积和代码: vector<int> prod原创 2020-06-04 13:57:02 · 152 阅读 · 0 评论 -
给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。(c++实现)
思路:for循环从1遍历到n-1,在嵌套一个for循环来遍历每一项与其他项的连续和,在遍历的过程中用if语句判断和是否为k即可。**(重点是要注意题干是连续的子数组,不是普通的子数组)*#include <iostream>using namespace std;#include "string.h"#include "stdlib.h"#include "stdio.h"#define N 30int k = 0;int size = 0;int i = 0;int su原创 2020-05-16 14:55:46 · 3170 阅读 · 0 评论 -
随机输入一串字符,统计里面出现次数最多的字符,再按照出现次数由多到少的顺序输出
1.用数组存储字符出现的次数2.通过for循环来找出最大次数的字符3.通过冒泡排序将次数由多到少排序4.用for循环和if判断将相同的次数排在一起#include "stdio.h"#include "string.h"#include "stdlib.h"#define n 100int b[n];int max = 0;int t2 = 0;int t1 = 0;int index = 0;int len = 0;void sum(char a[], int len){原创 2020-05-14 23:02:10 · 898 阅读 · 0 评论 -
找出一个字符串中最长不重复子串(代码很渣,看看就好,欢迎大佬指点)
思路:1.将每段不重复的字符串用数组存储。2.当遍历到相同字符串时,记录数组长度,并与之前记录的数组长度比较,更换最长的长度。3.将起始位置移向那个重复字符位置,继续遍历查看有无重复。4.用以上遍历到的字符位置和最长长度输出不重复的最长字符串。#include <stdio.h>int zifu[30]; int maxlen,maxindex;void paixu(char * arr, int size) { int i, j; int star原创 2020-05-13 23:20:45 · 513 阅读 · 0 评论 -
求给定数组中出现频率最高的前n个数(个人解法,较渣,请大佬们指点)
思路:1.使用两个数组,a[i] b[i],a[i]保存数据,b[i]保存每个数据出现的次数。2.然后找到出现次数最多的b[i],并且记录下其下标i,从而找到最大次数对应的数字。3.输出频率最高之后,再用for循环将数组b中频率与之相同的b【i】置为0.再回到步骤二进行N次循环,从而可以输出第二个频率最高的数字和频率次数...原创 2020-05-13 20:38:24 · 1931 阅读 · 0 评论