代码随想录 + 嵌入式八卦文 (1)

一.运算符

         ()[].->         !~ ++ --         &*         /%*         +-        <<>>= =  > <    &|^   &&||         ?: = += -=

         1. 优先级,简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

        2. 单目优于双目

        3. 单目、条件、赋值是右左结合

        4. !表示取非,对于整形变量,只要不为 0,使用 ! 取反都是 0,0 取反就是 1。就 像 bool 只有真假一样

        5. ~取反,代表位的取反,对于整形变量,对每一个二进制位进行取反,0 变 1,1 变 0         

        6. ? : 三目运算

        7. 源码、补码、反码

         注意有符号和无符号的数运算有符号转无符号,运算的时候是补码运算,而不是源码,打印的时候看输出格式

#include<stdio.h>

int main()

{

        int a = -7;

        unsigned int b = 3;

        if( (a + b) > 0)                 //如果打印‘+’说明 a+b > 0,即有符号转无符号运算的时候

        {

                 printf("+\n"); //+

        }

         printf("%u\n",a + b);        //4294967295

        printf("%d\n",a + b);        //-4

return 0;

}

-7

源码:1000 0000 0000 0000 0000 0000 0000 0111

反码:1111  1111  1111  1111 1111  1111  1111 1000

补码:1111  1111  1111  1111 1111  1111  1111 1001 

        8.%操作必须两边都是整数

        9.三目运算符

         int a = 2;

         int b =3; b = 0 ? 1:(++a);

        printf("%d\n",a);         printf("%d\n",b);         //        3         3

二.代码随想录 (数组理论)

        数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力,也就是说,想法很简单,但实现起来 可能就不是那么回事了。 

        数组是存放在连续内存空间上的相同类型数据的集合。   

需要两点注意的是

  • 数组下标都是从0开始的。
  • 数组内存空间的地址是连续的

正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。

        数组可以方便的通过下标索引的方式获取到下标下对应的数据。但是数组的元素是不能删的,只能覆盖

三.coding part

        1.leetcode 704 二分查找                难度 :简单

描述 :给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

 来源:力扣(LeetCode)
 链接:https://leetcode.cn/problems/binary-search

题解:

        这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件


          同类型题 :leetcode 35插入位置搜索                  难度 :简单

        给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。      

        请必须使用时间复杂度为 O(log n) 的算法。  -----> 二分查找

要在数组中插入目标值,无非是这四种情况:

        目标值在数组所有元素之前

        目标值等于数组中某一个元素

        目标值插入数组中的位置

        目标值在数组所有元素之后

           同类型题 :leetcode 34 在排序数组中查找元素的第一个和最后一个位置        难度:中等

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]

你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值