![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题笔记
记录一些题目的思路和解法
要有好奇心啊扑街
这个作者很懒,什么都没留下…
展开
-
LeetCode——20.有效括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:1、左括号必须用相同类型的右括号闭合。2、左括号必须以正确的顺序闭合。示例:输入:s = "()"输出:tue输入:s = "()[]{}"输出:true输入:s = "(]"输出:false输入:s = "([)]"输出:false输入:s = "{[]}"输出:true提示:1 <= s.length <= 10^4s 仅由括号 '()原创 2021-05-27 18:06:28 · 112 阅读 · 0 评论 -
CSDN问答系列--1
问题描述从键盘输入 不到十个字符(0-9,a-z),将英文位颠倒,数字不变(C语言)。解题思路:1、申请两个数组A和B,A存输入字符串,B存A的逆序。2、for循环将A中字符替换为B中相同下标的字符。代码如下:#include <stdio.h>#include <string.h>int main(void ){ char str[10] = {0}; printf ("Please input a string: "); scanf ("原创 2021-05-21 18:01:38 · 118 阅读 · 0 评论 -
LeetCode刷题之求最大连续1的个数。题号485
记一下在LeetCode刷题的经历题目描述给定一个二进制数组, 计算其中最大连续 1 的个数。例子:解题思路1、使用一个中间变量count存储连续1的个数,使用一个最终变量MaxCount存储最大连续1的个数;2、利用循环来记录连续1的个数count,当遇到0时,将count与MaxCount进行比较,保持MaxCount一直最大;3、比较完成后将count清零,进行下一次遇到1时重新计数。代码如下#include <stdio.h>int findMaxConsecuti原创 2021-03-20 18:18:01 · 87 阅读 · 0 评论 -
C语言练习之思科笔试第二题
题目描述:数组a[N]中顺序存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.要求时间复杂度必须为O(N)。函数原型:int do_dup(int a[],int N);解题思路:1、将重复的那一个数字剔除,则得到长度为(N-1)、公差为1的等差数列;2、对此数列进行求和操作,得到sum1;对数组进行求和操作,得到sum2.3、sum2-sum1的结果就是重复的那一个数字。代码如下:int do_dup(int a[],int N) //未经调试{ int原创 2021-03-18 23:24:46 · 193 阅读 · 0 评论 -
C语言练习之求整数二进制中1的个数
碰巧看到的题目,当时看其他人用循环去计算该int值当中有多少个二进制数字1,就感觉这样的效率不是很高。碰巧正好在用位运算相关知识,就用来试了一下,效率确实有所提高。#include <stdio.h>int main(){ int a = 8432789; int count = 0; while (a > 0) { if (a &0x01 == 1) count ++; a >原创 2021-03-17 21:48:56 · 394 阅读 · 4 评论 -
C语言之一维数组1.2:三大排序
1、冒泡排序基本思想:两个数比较大小,小的数放在大的数前面(升序)实现流程:1、比较相邻的两个数组元素A和B,如果A > B,就交换A 、B的位置,否则不做改变。2、从后往前对数组元素进行两两比较,一直到最前两个的两个元素。最终数组中最小值被交换到起始的位置。#include <stdio.h>#define SIZE (10)void Swap(int *a, int *b){ /*使用位运算: 按位与进行数据交换*/ (*a) = (*a)^(*b); (*b)原创 2021-03-10 23:35:58 · 483 阅读 · 0 评论 -
C语言之一维数组1.1:增删改查
在1.0 中简单介绍了数组概念。下面记一些有关数组的操作1、增对一个初始化过的数组,每修改一个元素的值,其有效长度增加 1。#include <stdio.h>void InsertData(int *arr, int *len){ if (arr == NULL) { printf ("Array = NULL\n"); return ; } int data = 0; printf ("Plesae input: "); scanf ("%d", &da原创 2021-03-09 22:08:40 · 2105 阅读 · 1 评论 -
C语言之一维数组1.0
数组的概念由一系列数据类型相同的元素组成的有序集合。如何去理解呢?以一个鞋架为例,这个鞋架一共五层,每层最多放三双鞋。类比为数组则是,数组“鞋架”一共有五个元素(每一层视为一个元素),每个元素的值为“最多三双鞋”(每一层可以放0-3双鞋子)。数组的类型//基本类型/*整型数组*/int array[5] = {0, 1, 2, 3, 4};/*浮点型数组*/float array[5] = {0.5f, 0.6f, 0.7f, 0.8f, 0.9f};//单精度double array[5原创 2021-03-09 00:01:10 · 177 阅读 · 0 评论 -
C语言指针1.2--指针与数组
数组名可以看做是一个指针,它指向数组的首元素地址。但是又不能将它作为一个正常的指针去使用。#include <stdio.h>int main(){ int arr[5] = {1, 2, 3, 4, 5}; int * p_arr = arr; printf ("arr[0]=%d\n", arr[0]); printf ("p_arr=%d\n", *p_arr); printf ("adress of arr=%p\n", arr);原创 2021-03-04 21:22:38 · 85 阅读 · 2 评论 -
C语言指针1.0--指针是什么
指针变量的声明方式为:数据类型 * 变量名在C语言中,常用的指针有以下几种:char * ptr; //char类型指针int * ptr; //int类型指针float * ptr; //float类型指针double * ptr; //double类型指针void * ptr; //void类型指针int类型变量存储的是整型数据,如10.那么指针里面存的是什么?是地址。int a = 10;//变量a当中存储的是整数10int * p = &a;//变量p当中存储的是变原创 2021-02-25 22:55:24 · 204 阅读 · 0 评论