C++ Chanel
618 subscribers
44 photos
6 videos
53 links
Download Telegram
Про инкременты в С++,их отличие

В С++ существует два типа
постфиксный:

int value = 5;
value++;


и префиксный:

int value = 5;
++value;


Если мы говорим про циклы то разницу вы заметите, все зависит от компилятора и если даже она будет, то незначительная.А про инкременты в переменных на фото выше☝️
👍3
C++ Chanel
Задача с leetcode: https://leetcode.com/problems/is-subsequence/ Решение скину позже
Попросили решение:
class Solution {
public:
bool isSubsequence(string s, string t) {
int left{};
int right{};
while(left<s.size() && right<t.size()){
if(s[left] == t[right])left++;
right++;
}


return left==s.size();
}
};
👍3🕊1
От всего сердца поздравляю каждого с наступающим новым годом!Еще 4 месяца назад я даже не думал о создании канала и что людям будет интересно изучать что-то новое
🎉17🫡2
C++ Chanel
Первая задача в новом году: https://leetcode.com/problems/plus-one/
Решение:

class Solution {
public:
vector<int> plusOne(vector<int>& digits){
vector<int> result = digits;
for(int i = result.size()-1;i>-1;--i){
if(i==result.size()-1)
++result[i];
if(result[i]==10){
result[i] = 0;
if(i!=0) ++result[i-1];
else{
result.push_back(0);
result[i] = 1;
}
}
}
return result;
}
};
👍2
C++ Chanel
Супер интересная задача: https://leetcode.com/problems/number-of-laser-beams-in-a-bank/ пробелы поставлю
Решение:
class Solution {
public:
int numberOfBeams(vector<string>& bank) {
int result{};
int preCounter{};
int counter = {};

for(int y = 0;y<bank.size();++y){

for(int x = 0;x<bank[y].size();++x){

if(bank[y][x] == '1')counter++;

}

if(counter == 0){
continue;
}

cout<<counter<<endl;

if(y == 0){

preCounter = counter;
counter = 0;

}else{

result += preCounter*counter;
preCounter = counter;
counter = 0;

}
}

return result;
}
};
👍1🤨1
Новый токен от самого тг
(монеты фармить бесплатно)

Можно заработать неплохой Х при дропе Notcoin💸

В любом случае можно попробовать

https://t.me/notcoin_bot?start=rp_5563121
Решение:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
int result = 0;
public:
int rangeSumBST(TreeNode* root, int low, int high) {
if(root == NULL)return result;

if(root->val >= low && root->val <= high)result += root->val;

rangeSumBST(root->left,low,high);
rangeSumBST(root->right,low,high);

return result;
}
};
This media is not supported in your browser
VIEW IN TELEGRAM
Yai — помощник терминала с ИИ.

Помощник вашего терминала, использующий OpenAI ChatGPT для создания и выполнения команд за вас. Вам просто нужно описать их своим повседневным языком, все остальное будет сделано.

Языки: #Go (97.1%), #Shell (2.9%).

https://github.com/ekkinox/yai
👍1
GradeJS проект с открытым исходным кодом, который позволяет анализировать производственные пакеты веб-пакетов без доступа к исходному коду веб-сайта.

Он обнаруживает список связанных библиотек NPM и работает даже для минимизированных или древовидных пакетов.

Языки: #TypeScript (82.8%), #SCSS (13.9%), #JS (1.6%), #Shell (1.5%), #HTML (0.2%).
Сегодня завтра запощу инфу как решать задачи про бинарные деревья с помощью рекурсии
3🔥1
Как решать бинарные деревья?

Самый простой способ это через рекурсию.Но в параметры мы указываем дочерние элементы дерева.Проходим до того момента пока

  tree->val != NULL  


В каждой задаче после всех манипуляций будем возвращать наш результат.Расмотрим на примере: https://leetcode.com/problems/range-sum-of-bst/description/


class Solution {
int result{};
public:
int rangeSumBST(TreeNode* root, int low, int high) {
if(root == NULL)return result;

if(root->val >= low && root->val <= high)result += root->val;

rangeSumBST(root->left,low,high);
rangeSumBST(root->right,low,high);

return result;
}
};


В этой задаче нам нужно найти сумму узлов в определенном радиусе.Сначала создаем переменную в которую будем складывать подходящие числа.Дальше делаем проверку если узла после рекурсии не существует - мы выходим.В следующей строке проверяем если число больше минимума и меньше максимума.Дальше рекурсия по правым и левым узлам.И только когда мы выйдем из всех рекурсий мы возвращаем результат