All language subtitles for 10. A Program to count a total number of “non-unique” values in an array - Solution
Afrikaans
Akan
Albanian
Amharic
Arabic
Armenian
Azerbaijani
Basque
Belarusian
Bemba
Bengali
Bihari
Bosnian
Breton
Bulgarian
Cambodian
Catalan
Cebuano
Cherokee
Chichewa
Chinese (Simplified)
Chinese (Traditional)
Corsican
Croatian
Czech
Danish
Dutch
English
Esperanto
Estonian
Ewe
Faroese
Filipino
Finnish
French
Frisian
Ga
Galician
Georgian
German
Greek
Guarani
Gujarati
Haitian Creole
Hausa
Hawaiian
Hebrew
Hindi
Hmong
Hungarian
Icelandic
Igbo
Indonesian
Interlingua
Irish
Italian
Japanese
Javanese
Kannada
Kazakh
Kinyarwanda
Kirundi
Kongo
Korean
Krio (Sierra Leone)
Kurdish
Kurdish (Soranî)
Kyrgyz
Laothian
Latin
Latvian
Lingala
Lithuanian
Lozi
Luganda
Luo
Luxembourgish
Macedonian
Malagasy
Malay
Malayalam
Maltese
Maori
Marathi
Mauritian Creole
Moldavian
Mongolian
Myanmar (Burmese)
Montenegrin
Nepali
Nigerian Pidgin
Northern Sotho
Norwegian
Norwegian (Nynorsk)
Occitan
Oriya
Oromo
Pashto
Persian
Polish
Portuguese (Brazil)
Portuguese (Portugal)
Punjabi
Quechua
Romanian
Romansh
Runyakitara
Russian
Samoan
Scots Gaelic
Serbian
Serbo-Croatian
Sesotho
Setswana
Seychellois Creole
Shona
Sindhi
Sinhalese
Slovak
Slovenian
Somali
Spanish
Spanish (Latin American)
Sundanese
Swahili
Swedish
Tajik
Tamil
Tatar
Telugu
Thai
Tigrinya
Tonga
Tshiluba
Tumbuka
Turkish
Turkmen
Twi
Uighur
Ukrainian
Urdu
Uzbek
Vietnamese
Welsh
Wolof
Xhosa
Yiddish
Yoruba
Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:01,080 --> 00:00:07,560
So before we start coding, we need to understand what are we going to code and what should we do even
2
00:00:07,560 --> 00:00:08,580
in this process?
3
00:00:09,450 --> 00:00:16,860
So the question is how can we find out how many values are not unique in the specific array?
4
00:00:17,670 --> 00:00:25,380
So if we take these five and we found somewhere else on the way, another five, so we can say that
5
00:00:25,380 --> 00:00:28,560
we found out one element, right?
6
00:00:28,560 --> 00:00:30,360
One value literacy.
7
00:00:31,550 --> 00:00:34,760
That is not unique, so five is not unique.
8
00:00:38,210 --> 00:00:41,210
So we proceed on and we do the same process for a three.
9
00:00:41,270 --> 00:00:41,720
Right.
10
00:00:42,170 --> 00:00:48,410
We found the three is not unique because we found another option, another duplication for it.
11
00:00:48,710 --> 00:00:51,740
OK, so we say that three is also non unique value.
12
00:00:54,520 --> 00:00:57,010
And then we move on and we come again to five.
13
00:00:58,030 --> 00:00:58,420
Right.
14
00:00:59,390 --> 00:01:01,430
So do we remember?
15
00:01:02,400 --> 00:01:07,020
That five was already found to be a non unique value.
16
00:01:08,020 --> 00:01:14,530
Probably not, because we do not use here additional space to store additional memory for this array.
17
00:01:14,650 --> 00:01:18,700
OK, we do not create a temporary array for this assistance.
18
00:01:18,790 --> 00:01:19,240
OK.
19
00:01:19,810 --> 00:01:23,420
But what we ask is, OK, so can I find five?
20
00:01:23,440 --> 00:01:24,900
Yeah, there is an additional five.
21
00:01:24,910 --> 00:01:25,270
OK?
22
00:01:25,300 --> 00:01:27,220
So yeah, I should print once again.
23
00:01:27,220 --> 00:01:33,340
Five is none unique value, but that would be wrong because we are interested in just the actual values
24
00:01:33,340 --> 00:01:35,710
themselves that we need to print.
25
00:01:36,520 --> 00:01:41,740
OK, so a lot of mistakes, I assume, happen just on this stage right here.
26
00:01:42,100 --> 00:01:47,110
So you would have been five, three and five three and a total of nine unique values.
27
00:01:47,110 --> 00:01:52,000
But that's not true because values are only two, five and three that are not unique.
28
00:01:52,750 --> 00:01:59,050
So one of the options, of course, once again, I'm saying this is a kind of beginner s material,
29
00:01:59,290 --> 00:02:02,710
so I'm going to show you an option how to do it.
30
00:02:03,250 --> 00:02:05,650
It may be optimized.
31
00:02:05,800 --> 00:02:11,620
I'm leaving it to you, but for now, it's just sufficient for us to make it work and to understand
32
00:02:11,620 --> 00:02:13,690
the basic algorithmic approach.
33
00:02:14,920 --> 00:02:18,510
So what we will do is we will take every time some value.
34
00:02:18,520 --> 00:02:24,930
Let's call it with index AI and we will take every time some value with Index G.
35
00:02:26,980 --> 00:02:33,100
And we will compare I with any of the optional JS, and if we will find a duplication, we'll print
36
00:02:33,100 --> 00:02:39,220
five is none unique and and also edit to some counter of none unique values.
37
00:02:40,570 --> 00:02:43,540
OK, but how do we treat the previous problem that we had?
38
00:02:43,540 --> 00:02:46,170
So for example, we have something like that.
39
00:02:46,180 --> 00:02:51,190
So we have I use five and we start j from here.
40
00:02:52,090 --> 00:02:56,860
So we will ask the following question we will separated into two parts.
41
00:02:57,370 --> 00:02:59,560
We will say if we found.
42
00:03:00,920 --> 00:03:10,250
If we found anything on the left side of the settlement that equals to the actual value itself, then
43
00:03:10,250 --> 00:03:18,740
it means that we took into account these value already by now in the list of the nine unique elements.
44
00:03:19,190 --> 00:03:19,490
Right.
45
00:03:19,490 --> 00:03:25,610
So if we compare five with five, we will be able to say that we already found out that these five,
46
00:03:25,700 --> 00:03:32,480
because we started from left to right, we will be able to say that these five value is already being
47
00:03:32,480 --> 00:03:36,470
taken care of and it has already been taken into account.
48
00:03:37,490 --> 00:03:44,600
And whenever we will reach J equals to II right, we will ask the following question if we did not find
49
00:03:44,840 --> 00:03:46,010
anything so far.
50
00:03:46,460 --> 00:03:53,510
So that means that these values definitely we need not take it into account and we can take a look to
51
00:03:53,510 --> 00:03:57,290
the right and see if it exists again there.
52
00:03:57,800 --> 00:04:03,860
If he does, then we it means that we need to take this into account this value, if not.
53
00:04:03,860 --> 00:04:06,520
So basically, that was kind of unique value.
54
00:04:06,530 --> 00:04:07,340
And that's it.
55
00:04:08,450 --> 00:04:09,980
Okay, so you feel me so far.
56
00:04:10,760 --> 00:04:13,000
Also, we do the same for, for example, three.
57
00:04:13,010 --> 00:04:20,390
OK, so we'll take a look if there was any three on the left that we already took into account.
58
00:04:21,170 --> 00:04:27,410
So that's very important part to split it up to the left part and to the right part.
59
00:04:27,860 --> 00:04:33,440
Of course, you can think of any suggest that additional solutions to solve it, but for now, I think
60
00:04:33,440 --> 00:04:35,810
that would be one of the easiest ones.
61
00:04:36,940 --> 00:04:44,560
OK, so awesome, let's try now to what to do to optimize the solution that was previously discussed
62
00:04:44,560 --> 00:04:46,240
in one of the previous exercises.
63
00:04:46,780 --> 00:04:49,540
So when we took a look at.
64
00:04:51,400 --> 00:04:52,600
At unique values.
65
00:04:52,930 --> 00:04:56,420
So let's call it now, none unique.
66
00:04:56,950 --> 00:05:01,690
Count will create some value input summary OK, no problem.
67
00:05:02,080 --> 00:05:09,280
And now we will start to iterate from equal to zero eyes less than 10 and J equals to zero js less than
68
00:05:09,280 --> 00:05:09,580
10.
69
00:05:10,450 --> 00:05:11,500
But what will we do?
70
00:05:12,040 --> 00:05:13,060
What will we do?
71
00:05:13,060 --> 00:05:16,450
And should we adjust at least a little bit?
72
00:05:16,540 --> 00:05:19,330
These for a loop to support these part.
73
00:05:19,690 --> 00:05:22,030
And the answer is absolutely yes.
74
00:05:22,540 --> 00:05:23,350
Let us see how.
75
00:05:24,890 --> 00:05:25,400
OK.
76
00:05:25,460 --> 00:05:32,060
And if we want to keep on working only with the left side, so there is one thing that we need to ask
77
00:05:32,060 --> 00:05:36,230
ourselves what he is and what is the definition of the left side?
78
00:05:36,350 --> 00:05:41,390
Because on every iteration, for every of the elements that we are going to work with, it is going
79
00:05:41,780 --> 00:05:44,630
to be maybe different rights on the left side.
80
00:05:45,470 --> 00:05:50,900
How can we define it for a specific element at indexing what eats its left side?
81
00:05:51,710 --> 00:06:01,820
So the left side, for any value that is represented by the index i the left side is simply specified
82
00:06:01,820 --> 00:06:04,550
as long as J is less than I.
83
00:06:04,970 --> 00:06:08,240
So the left side is specified by that.
84
00:06:08,870 --> 00:06:16,130
So that's why we will specify here as long as J is less than I will start J from zero, as long as JS
85
00:06:16,130 --> 00:06:22,040
less than I, meaning we did not reach the actual element, but rather one on the left.
86
00:06:23,110 --> 00:06:31,420
Then what we do is we do J Plus Plus and then what we ask, we will ask a very simple question.
87
00:06:31,930 --> 00:06:33,500
We will remove this one.
88
00:06:33,520 --> 00:06:34,500
It's not necessary.
89
00:06:34,510 --> 00:06:39,310
We will ask if values at Index II equals two values that index.
90
00:06:39,730 --> 00:06:48,700
Meaning if there is at least one element on the left side of this element meaning before it, then it
91
00:06:48,700 --> 00:06:51,280
means that we already found a duplicate.
92
00:06:52,000 --> 00:06:56,350
OK, and we found a duplicate will set it up to be one case.
93
00:06:56,350 --> 00:07:02,020
So we know that on the left side, there is already a duplicate, for example, of five, but we also
94
00:07:02,020 --> 00:07:03,370
took it into account.
95
00:07:03,910 --> 00:07:10,140
So that way we will need to ask the following question we will need to ask, let's remove this part,
96
00:07:10,150 --> 00:07:11,800
OK, so it will not bother us.
97
00:07:12,340 --> 00:07:18,670
We will need to ask the following question let's say, OK, so that's the first if and then once we
98
00:07:18,670 --> 00:07:21,190
are done with this for a loop.
99
00:07:21,190 --> 00:07:29,170
So we ask after using these break, we ask the following question if found duplicate equals to one,
100
00:07:29,620 --> 00:07:36,250
if it equals to one, meaning we found a duplicate on the left side of a current element that we are
101
00:07:36,790 --> 00:07:39,280
observing the current element at Index II.
102
00:07:39,550 --> 00:07:46,270
And if that's the case, what we can do is we can also break from the outer loop.
103
00:07:47,570 --> 00:07:53,660
Right, we can break from these outer outer loop because we know that these value, there is no reason
104
00:07:53,660 --> 00:08:00,290
to check it with all the elements on its right because we know that the value itself is already has
105
00:08:00,290 --> 00:08:05,750
been taken care of and where it has been taken care of in the previous part.
106
00:08:06,200 --> 00:08:08,210
And that's we're now.
107
00:08:09,510 --> 00:08:15,390
The else for this section, meaning you found duplicate was not found on the left side.
108
00:08:16,080 --> 00:08:24,540
If it was not found on the left side, then it means that these value can also still be unique or Anani
109
00:08:24,540 --> 00:08:25,380
unique value.
110
00:08:25,810 --> 00:08:32,220
OK, you feel me so far it can be unique or not unique, so we will need to check this value with any
111
00:08:32,220 --> 00:08:34,230
of the other values on the right side.
112
00:08:34,920 --> 00:08:41,010
And if we will find that these value at index site will be equal to any of the values in the right side,
113
00:08:41,310 --> 00:08:46,620
starting from these jobs until the size of the array of minus one size minus one.
114
00:08:46,620 --> 00:08:53,100
Basically, if we will find a duplicate there, then we will need to take into account these value.
115
00:08:53,700 --> 00:08:54,790
So how can we do it?
116
00:08:54,810 --> 00:09:01,260
So these L.S. will run the following part of the code we will say J equals two.
117
00:09:01,260 --> 00:09:04,530
What from what index do we start their eight part?
118
00:09:04,830 --> 00:09:12,890
We started from I +1 right because the right part of these value add indexes starts from J equals two
119
00:09:12,900 --> 00:09:13,860
i +1.
120
00:09:14,580 --> 00:09:21,420
And as long as it's less than the size or in this case, it's just 10, OK, you can define it whatever
121
00:09:21,420 --> 00:09:23,340
you want, J + +.
122
00:09:24,180 --> 00:09:29,580
So that will refer to working with the right side.
123
00:09:30,700 --> 00:09:33,290
OK, so previously it was the left side.
124
00:09:33,310 --> 00:09:39,730
Now it's the right side, and we will ask inside of these for a loop, a simple question what is it?
125
00:09:39,760 --> 00:09:41,620
Come here, come here.
126
00:09:41,620 --> 00:09:42,190
Come here.
127
00:09:42,850 --> 00:09:44,560
We will ask inside of these for a loop.
128
00:09:44,560 --> 00:09:45,460
A simple question.
129
00:09:45,460 --> 00:09:53,050
We will ask if values at index say even equals to value set index j, then in this case, what you should
130
00:09:53,050 --> 00:09:53,320
do.
131
00:09:54,070 --> 00:09:55,780
You should print some message.
132
00:09:55,780 --> 00:09:58,810
OK, so like something like non unique value.
133
00:10:00,630 --> 00:10:06,600
Is percentage, I don't know, expression here specified the actual value that you want to print.
134
00:10:07,780 --> 00:10:15,940
Is it clear also let's take non-Sunni count plus plus and there is no need to continue, so we will
135
00:10:15,940 --> 00:10:20,440
simply break from this for a loop as well.
136
00:10:21,310 --> 00:10:21,490
Okay.
137
00:10:21,490 --> 00:10:28,690
So if we found out that it was equal, otherwise found duplicate will still remain zero.
138
00:10:29,080 --> 00:10:36,010
Well, basically, yeah, I think we can also add here found duplicate equal to zero or start with every
139
00:10:36,010 --> 00:10:38,500
iteration nullified.
140
00:10:38,980 --> 00:10:40,140
And yeah, that's it.
141
00:10:40,150 --> 00:10:42,640
That's the part of working with the right side.
142
00:10:43,630 --> 00:10:49,690
So we start with the index one to the right of the index that we are working with.
143
00:10:49,690 --> 00:10:56,650
And we ask if values in IXI equals value it SJ found a duplicate, then we can say that this value is
144
00:10:56,650 --> 00:10:58,850
none unique value printed.
145
00:10:58,850 --> 00:11:00,490
It added it to the account.
146
00:11:00,490 --> 00:11:01,300
And that's it.
147
00:11:01,840 --> 00:11:08,140
So the main difference is that we've made is simply by distinguishing between the left part so far and
148
00:11:08,140 --> 00:11:08,980
the right part.
149
00:11:09,940 --> 00:11:15,610
So before celebrating, OK, let's make sure that everything here works exactly as we expected.
150
00:11:16,150 --> 00:11:17,950
Yeah, OK, so let's build and run it.
151
00:11:18,730 --> 00:11:21,060
Yeah, I see that we had got some errors.
152
00:11:21,070 --> 00:11:23,740
Let's try to figure out what are the problems.
153
00:11:25,490 --> 00:11:27,810
So unique count with his unique count on.
154
00:11:27,920 --> 00:11:33,980
OK, of course, we modified the the name of this variable, so now it's my unique count.
155
00:11:35,160 --> 00:11:35,940
Let's build it.
156
00:11:36,180 --> 00:11:36,630
Come on.
157
00:11:36,930 --> 00:11:37,380
Work.
158
00:11:39,520 --> 00:11:41,410
OK, so what are the values?
159
00:11:41,470 --> 00:11:43,630
Let's get it like this will be nice to see.
160
00:11:44,050 --> 00:11:47,290
So values are five seven.
161
00:11:48,350 --> 00:11:52,220
Three, four, five six eight, eight five, OK.
162
00:11:52,320 --> 00:11:53,450
Never mind.
163
00:11:54,380 --> 00:11:56,930
Nine, 10 and three, OK.
164
00:11:56,930 --> 00:11:58,640
And we really hope these will work.
165
00:11:58,910 --> 00:12:00,620
If not, we will make corrections.
166
00:12:00,650 --> 00:12:03,480
OK, because that's the part of developing.
167
00:12:03,530 --> 00:12:05,570
Don't worry if we will get problems.
168
00:12:06,050 --> 00:12:09,110
But in this case, it seems that we've made everything correctly.
169
00:12:09,110 --> 00:12:11,720
We get nine unique value equals to five and nine.
170
00:12:11,720 --> 00:12:17,090
Unique value equals to three total unique numbers equals to two total none.
171
00:12:17,090 --> 00:12:17,680
Uniqueness.
172
00:12:18,110 --> 00:12:19,520
It should be none.
173
00:12:20,240 --> 00:12:21,220
None unique.
174
00:12:22,360 --> 00:12:23,470
Nine unique names.
175
00:12:25,260 --> 00:12:25,630
OK.
176
00:12:25,680 --> 00:12:29,520
So total non unique values, but that's just the message.
177
00:12:30,030 --> 00:12:31,520
So I hope that's clear to you guys.
178
00:12:31,530 --> 00:12:36,660
Very important, very interesting video, very interesting exercise of how we can split it into two
179
00:12:36,660 --> 00:12:42,120
parts of things that we have processed so far and things that we have not processed so far.
180
00:12:42,450 --> 00:12:50,400
Because you see this knowledge and this understanding, I think it's kind of moving further in understanding
181
00:12:50,400 --> 00:12:51,180
the material.
182
00:12:51,990 --> 00:12:53,400
So thank you guys for watching.
183
00:12:53,430 --> 00:12:54,570
Keep on practicing.
184
00:12:54,570 --> 00:12:59,970
If you have any questions, always feel free to ask if you think there are a couple of improvements
185
00:12:59,970 --> 00:13:03,120
that can be made to solve it more efficiently.
186
00:13:03,600 --> 00:13:07,800
Maybe there is that saying there are not, so feel free to share it.
187
00:13:07,890 --> 00:13:15,540
OK, and maybe in the further questions and further sections, maybe we will also talk about how we
188
00:13:15,540 --> 00:13:21,420
can improve the performance of some of the solutions that we've made so far in this course.
189
00:13:22,270 --> 00:13:24,120
So once again, thank you, guys.
190
00:13:24,150 --> 00:13:25,720
My name is Vlad Alfa Tech.
191
00:13:25,740 --> 00:13:26,860
I'll see you next time.
192
00:13:26,940 --> 00:13:27,390
Bye.
17917
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.