C
大师匈
本人一介草民
展开
-
C语言基础算法 二进制求和leecode
题目:二进制求和给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。1 <= a.length, b.length <= 10^4字符串如果不是 “0” ,就都不含前导零。可能很多人想在转换成10进制这样去计算,但是这样原创 2020-12-24 22:53:28 · 2507 阅读 · 1 评论 -
C语言 链表基础--整表创建
指针是链表的基础,链表是一个C语言的重难点,是学习操作系统还有数据结构算法的基础。大师兄简单做一个链表的整表创建程序,俩种方法,头插法还有尾插法。基础的同学可以仔细品味一下,#include <iostream>typedef struct node{ int data; struct node* next;}node;typedef struct node* linklist;void CreatHeadInsetList(linklist* L, int n)原创 2020-12-13 14:54:00 · 282 阅读 · 0 评论 -
C语言基础 整数反转算法(leecode)
题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0思路看到这个题目,它的目的就是翻转过来,尾巴的放在首位。那么首先是把每一位取出来,刚开始就会陷入取出每一位,然后计算它的位数,然后乘10的原创 2020-12-11 23:01:28 · 1915 阅读 · 1 评论 -
C语言基础--输出99乘法表
非常简单的一个基础练习题输出99乘法表#include"stdio.h"int main(){ for(int i=1;i<10;i++) { for(int j=1;j<=i;j++) { printf("%d*%d=%d ",i,j,i*j); } printf("\n"); }} 结果如下:原创 2020-12-02 13:52:44 · 1339 阅读 · 7 评论 -
C语言基础练习题--二分查找
题目在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums = [], target = 0输出:[原创 2020-12-01 23:39:03 · 591 阅读 · 1 评论 -
链表练习题1
题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807/**/** * Definition for singly原创 2020-12-01 00:01:56 · 211 阅读 · 0 评论 -
有效的字母异位词 qsort函数
有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。int compare(const void* a,const void* b){ char c=*(char*)a; char d=*(char*)b; retur原创 2020-11-22 23:45:49 · 113 阅读 · 1 评论 -
双指针移动0
俩种方法void swap(int *a, int *b) { int t = *a; *a = *b, *b = t;}void moveZeroes(int* nums, int numsSize){ // int i = 0; // int k = 0; // while(i<numsSize) // { // if(nums[i] == 0) // { // for(k=i;k<原创 2020-11-22 23:34:28 · 201 阅读 · 0 评论 -
C语言解决 加油站问题
加油站在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。示例 1:输入:gas = [1,2,3,4,5]cost = [3,4,5,1,2]原创 2020-11-18 23:51:28 · 1122 阅读 · 1 评论 -
数组查找 2分查找
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0int searchInsert(int* nums, int numsSize, int target){ int i原创 2020-11-17 23:54:20 · 235 阅读 · 0 评论 -
合并两个升序链表+原地移除数组中某一值
合并两个升序链表/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){ struct ListNode* temp; struct ListNode *resu原创 2020-11-16 23:19:58 · 102 阅读 · 0 评论 -
C语言 基础 字符串查找 删除排序链表中的重复元素
字符串查找判断字符串s是不是t的子序列bool isSubsequence(char * s, char * t){ char *a = s; char *b = t; while( *b && *a) { if(*b == *a) { a++; } b++; } if(*a == '\0') return true; else原创 2020-11-12 23:19:07 · 621 阅读 · 0 评论 -
C语言重温基础排序算法
自从学习C语言开始,就知道个举世闻名的十大排序算法,今天大师匈重温了一下最简单的,一种是最蠢的,一种是冒泡;后续继续写出来其他的排序算法。。。。上代码:最蠢排序+冒泡排序int main(){ int bytes_num = 0,i = 0,j = 0 , temp = 0; int array[20]; printf("输入要排序的数量 :"); scanf("%d",&bytes_num); printf("bytes_num = %d\n",bytes_num); prin原创 2020-11-10 23:26:47 · 198 阅读 · 0 评论 -
C语言 基础的数学思维题
大师匈觉得C语言博大精深,一个合格的程序员不仅要有严密的逻辑思维,精通MCU啊,操作系统啊,各种行业相关的听起来很高大上的东西,而且要有数学思维,敏锐的嗅觉出色的debug能力,混迹几年,发现一些很基础的数学思维竟然也开始僵化了;如不等式,如排列组合的各种灵活应用,可能平时用的少,但是有一些空闲,多练习一些,让自己多思考一下,不至于让自己的脑子逐渐僵化。第一题:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?先不用程序实现,直接去算,有多少种,如果你还记得高中的排列组合,那么原创 2020-11-09 22:57:37 · 9289 阅读 · 28 评论